i using ruby on rails version 3. have defined following helper method selector:
def current_user_selector collection_select(:user, :id, user.all, :id, :name, {:prompt => "select user"}); end
i have introduced aforementioned selector in index.html.erb
:
... <%= current_user_selector %> ...
i've read somewhere selected option dropdown menu accessed in controller with:
selected_user = params[user][id]
i have added above line in several actions of controller keep getting exceptions.
currently have in following action:
# /users/:id/click # /users/:id/click.xml def click @user = user.find(params[:id]) @users_to_click = user.where("clicks_given - clicks_received >= ?", -5).order("clicks_given - clicks_received") selected_user = params[user][id] respond_to |format| format.html # click.html.erb format.xml { render :xml => @user } end end
my question is, how , selected user of dropdown menu.
naren sisodiya led me following exception:
you have nil object when didn't expect it! might have expected instance of activerecord::base. error occurred while evaluating nil.[]
params[:user][:id] give id of selected user, need find user using id.
selected_user = user.find(params[:user][:id])
edit:
also make sure accessing params[:user][:id] instead params[user][id]
update:
you need pass selected value server, mentioned have button invokes click action. can create dropdown , 1 submit button; as
<%= form_tag('/click',:method=>'get') -%> <%= current_user_selector %> <%= submit_tag 'get selected' %> <% end -%>
Comments
Post a Comment