0

我正在尝试编辑一组用户。我想用名称和复选框列表呈现表格。我很接近,但我错过了一些东西。

我的表格如下所示:

<%= 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>

但是,我需要以 users[id][vouched] 形式输入的名称,并且 vouched 是一个虚拟属性。

当我尝试使用 f.check_box 时,我得到一个方法未找到错误。

4

1 回答 1

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 %>
于 2013-02-12T12:08:40.423 回答