【问题标题】:How to display all has_many items in index view?如何在索引视图中显示所有 has_many 项?
【发布时间】:2014-08-14 22:21:56
【问题描述】:

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

名称/显示视图

<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

查看名称索引时出现的错误是: 名称中的 NoMethodError#index

【问题讨论】:

  • 以什么方式不起作用,你得到错误还是不是想要的输出?

标签: ruby-on-rails postgresql


【解决方案1】:
<% @names.each do |name| %>
    <% name.states.each do |state| %>
        <td><%= state.orbital_subset %></td>
    <% end %>
<% end %>

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2018-06-25
    相关资源
    最近更新 更多