如何在索引视图中显示所有has_many项?

时间:2014-08-14 22:21:57

标签: ruby-on-rails postgresql

我有两个模型,一个计算名称和一个带有一堆计算的不同表格。我已经成功建立了一对多的关系(一个名称有很多状态),这样当我在我的名字/显示视图中显示计算变量时,它可以完美地运行:

名称/显示视图

<p><%= @name.calc_name %></p>

<% @name.states.each do |state| %>
    <p><%= state.orbital_subset %></p>
<% end %>

但是,我希望在名称的索引页面上显示我的状态值中的变量。目前,我有一个很好的每个名称列表,但创建一个循环通过状态的内循环似乎不能很好地工作。这也很有效:

名称/索引视图

<% @names.each do |name| %>
  <tr>
    <td><%= name.calc_name %></td>
  </tr>
<% end %>

我在网上找到的最佳解决方案是这种格式不起作用:

<% @names.states.each do |state| %>
    <p><%= state.orbital_subset %></p>
<% end %>

我是否应该在索引页面上嵌套两个do循环,因为我循环遍历所有名称和所有状态?这是我的模特:

class Name < ActiveRecord::Base
  has_many :states
end

class State < ActiveRecord::Base
  belongs_to :name
end

我查看名称索引时收到的错误是: Names #index

中的NoMethodError

1 个答案:

答案 0 :(得分:0)

<% @names.each do |name| %>
    <% name.states.each do |state| %>
        <td><%= state.orbital_subset %></td>
    <% end %>
<% end %>