我尝试在视图中处理来自collection_select的数据:
<%= form_for(:group, :url => {:action => 'update', :group_id => @group.id}) do |f| %>
<th>New member</th>
<td><%= f.collection_select(:members, @users, :id, :first_name) %></td>
<%= submit_tag("Update Group") %>
<% end %>
但是我无法在控制器中获取它:
member_id = params[:member]
puts member_id.inspect
在控制台中检查结果:
零
但是当我收到错误时,我可以看到member_id存在:
undefined method `each' for "1":String
"utf8"=>"✓",
"authenticity_token"=>"GxCd==",
"group"=>{"name"=>"G7",
"members"=>"1"},
"commit"=>"Update Group",
"group_id"=>"4"
感谢您的帮助!
答案 0 :(得分:1)
如果您查看发布的错误,可以看到params
是以下哈希值;
{
"utf8"=>"✓",
"authenticity_token"=>"GxCd==",
"group"=> {
"name"=>"G7",
"members"=>"1"
},
"commit"=>"Update Group",
"group_id"=>"4"
}
params[:group]
是一个嵌套哈希值,因此要访问您的成员键,它将是params[:group][:members]
答案 1 :(得分:0)
要获得member_id
您必须致电:
params[:group][:members] # = "1"