我正在尝试构建一个表单,列出所有用户并允许您检查要添加到团队的表单。这是我在表格中的第一次剪辑:
<div id="add_team_mates">
<%= form_tag do %>
<%= will_paginate @users %>
<ul class="users">
<% @users.each do |user| %>
<li>
<%= gravatar_for user, :size => 30 %>
<%= link_to user.name, user %>
<%= check_box_tag("add", user.id) %>
</li>
<% end %>
</ul>
<%= submit_tag "Add Team Mates", :action => "add_team_mates" %>
<% end %>
</div>
而且,现在这就是我在控制器中所拥有的一切:
def add_team_mates
end
问题在于,如果我检查多个用户,我只会得到最后一个user.id而不是多个就像我期望的那样。以下是日志中的一些示例:
Started POST "/teams/5" for 127.0.0.1 at 2011-04-14 15:28:13 -0700
Processing by TeamsController#add_team_mates as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"IHFDevfKES8NibbCMlRa1t9qHn4/ZMKalK1Kjczh2gM=", "add"=>"3", "commit"=>"Add Team Mates", "id"=>"5"}
Completed in 12ms
对此的任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
您的所有复选框都具有相同的名称,请将行更改为
check_box_tag("add[]",user.id)
在控制器中,您的参数将如此:
params[:add] = ['foo','bar','baz']