2013-02-12 102 views
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> 

不過,我在用戶的形式需要輸入名字[ID] [我擔保]和我擔保是一個虛擬屬性。

當我嘗試使用f.check_box我得到一個方法找不到錯誤。

回答

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 %> 
+0

釘住它。謝謝@jvnill – Kosmonaut 2013-02-12 12:25:26

相關問題