我正在尝试编辑一组用户。我想用一个名称和复选框列表来呈现表格。我很亲密,但我错过了什么。
我的表格如下:
<%= form_for 'users[]', :url => approve_users_path, :html => {:class => 'form-horizontal'} do |f| %>
<tbody>
<% for user in @users %>
<%= fields_for user do |u| %>
<tr>
<td><%= user.name %></td>
<td><%= u.check_box :vouched %></td>
</tr>
<% end %>
<% end %>
</tbody>
<% end %>
生成
<tr>
<td>steve cabillero</td>
<td><input name="user[vouched]" type="hidden" value="0" /><input id="user_vouched" name="user[vouched]" type="checkbox" value="1" /></td>
但是,我需要以用户[id] [vouched]的形式输入名称,而vouched是一个虚拟属性。
当我尝试使用f.check_box时,我得到一个找不到方法的错误。
答案 0 :(得分:1)
如果您没有在表单中使用特定资源,则应使用form_tag
。我还建议使用#each
代替for循环,使用check_box_tag作为复选框
<%= form_tag approve_users_path, :class => 'form-horizontal' do %>
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= check_box_tag "users[#{user.id}][vouched]" %></td>
</tr>
<% end %>
</tbody>
<% end %>