fields_for与关联问题

时间:2011-03-01 21:16:37

标签: ruby-on-rails ruby-on-rails-3

如何在fields_for中使用关联数据?

我在用户,学校和学校用户之间有很多关系。用户可以拥有多所学校,而学校拥有多个用户。在schools_users中,除了常见的user_id和school_id之外,还有一个user_role字段。

在节目视图中,我有:

<% @school.schools_users.each do |user| %>
<tr><td><%= user.user.first_name %> <%= user.user.last_name %></td><td><%= user.user_role %></td></tr>
<% end %>

但我无法弄清楚如何在编辑页面的fields_for中做同样的事情。

<%= f.fields_for :schools_users do |f| %>
    <tr>
        <td><%= NEED USER NAME HERE %></td>
        <td><%= f.select(:user_role, active_role_options)%></td>
        <td><%= link_to_remove_fields 'Delete', f %></td>
    </tr>
<% end %>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

首先:您将fields_for的block变量分配给f,这与f使用的form_for相同。您应该使用其他名称,例如user_fields

有了这个:

<%= f.fields_for :schools_users do |user_fields| %>
  <tr>
    <td><%= user_fields.text_field :first_name %></td>
    ...
<% end %>