我on Rails的版本3.我定义了下面的辅助方法的选择使用Ruby:下拉选择,选择的选项
def current_user_selector
collection_select(:user, :id, User.all, :id, :name, {:prompt => "Select a User"});
end
我在index.html.erb
导入了上述选择:
...
<%= current_user_selector %>
...
我读过的地方,从下拉菜单中选择的选项可以在控制器访问:
selected_user = params[user][id]
我已经在我的控制器的几个动作中添加了上面的行,但我不断收到异常。
目前,我有它在下列行动:
# GET /users/:id/click
# GET /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 do |format|
format.html # click.html.erb
format.xml { render :xml => @user }
end
end
我的问题是,怎么和我得到的下拉菜单中选择用户。
那仁Sisodiya使我以下异常:
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]
你可以把你的形式,你正在使用下拉? – 2011-04-30 18:57:26
下拉菜单正在呈现在'index.html.erb'中。这是在问题。 – 2011-04-30 19:01:39