ruby on rails - How to add conditional link via active_scaffold? -


as says, i'm newbie in ruby on rails) , have following issue:

i have search form https://www.dropbox.com/s/hmr85xh3ra28nsf/screen%20shot%202015-07-10%20at%2023.19.07.png?dl=0

and have ability add new msisdn if doesnt exist. make fake insert , want add conditional link active_scaffold grid instead of exist ones:

config.action_links.add :submit_create, :label => "create blacklisted user", :type => :record, :confirm => "are sure?", :inline => true, :method => :get 

here controller

>class ccare::userstatuscontroller < applicationcontroller  >before_filter :filter_search  >  verify :method => :post, >         :only => :stop, >         :redirect_to => { :action => :index } >               >  active_scaffold :users |config|         >    config.label = "user status"        >    config.list.columns = [:msisdn, :user_agent, :network ]         >    config.actions = [:search, :field_search, :list, :nested]        >    config.actions.swap :search, :field_search       >    config.field_search.columns = [:msisdn]        >    config.columns[:id].label = "id"        >    config.columns[:id].search_sql = "users.id = ?"        >    config.columns[:id].search_ui = :text        >     >    config.columns[:msisdn].search_sql = "users.msisdn = ?"        >    config.columns[:msisdn].search_ui = :text        >     >    config.columns[:network].sort = {:sql => "network.network" }     >    config.columns[:network].search_sql = "network.network"        >    config.columns[:network].search_ui = :select     >    config.columns[:network].actions_for_association_links = [:show]        >    config.columns[:user_agent].label = "device"                >    config.nested.add_link("subscriptions", [:user_service_list])        >    config.nested.add_link("contact history", [:user_contact])        >      config.action_links.add "show_stop_all", :label => "stop all", :type > => :record, :crud_type => :create, :inline => true, :position => :after     >    config.list.always_show_search = true     >  end        >  def update_table       >    if params[:search].nil? , params[:nested].nil?       >      render :partial => "shared/empty_list", :layout => false       >    else       >      if not params[:search][:id].nil? , not params[:search][:id].empty? >and not params[:search][:id] =~ /^[0-9]+$/       >        flash[:error] = "id not number"       >        render :partial => "shared/empty_list", :layout => false       >        return       >      end       >      if (is_msisdn_exist)       >        super       >      else       >        user = user.new       >        user.msisdn = params[:search][:msisdn]       >        user.user_list_id = 1       >        user.save       >        super       >      end       >    end       >  end   

i tried put method is_msisdn_exist

active_scaffold :users |config|     .... end 

but returned error: method not found. how can implement conditional link?

i have solved problem in following way:

i add parameter link - :html_options = {}

config.action_links.add :submit_create, :label => "create blacklisted user", :type => :record, :confirm => "are sure?", :inline => true, :method => :get, :html_options = {}

and manipulate parameter in controller:

active_scaffold_config.action_links.each |link|
link.html_options={:hidden=>true} if ['create blacklisted user'].include? link.label
end


Comments