级联Rails循环不显示正确的数据

时间:2009-07-16 21:55:29

标签: ruby-on-rails ruby loops

我的布局文件中有以下代码:

<% @families = ProductFamily.find(:all, :include => :products) %>
<% @families.each do |f| %>

    <h2><%=h f.name %></h2>
    <ul>
    <% f.products.each do |product| %>
        <li><%=h product.name %></li>
    <% end %>
    </ul>
<% end %>

两件事:我怀疑这是遵循标准的MVC程序,因此任何帮助实现它都将是一个巨大的优势。但最重要的是,产品名称未显示。相反,模型名称(或我假设)将在其位置显示(即“产品”)。我知道它正在循环遍历所有产品,因为正在显示正确的行数 - 而不是实际的产品名称。

有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

@families = ProductFamily.find(:all, :include => :products)

在您的控制器中。

尝试

<%= h product.inspect %>

并确保名称符合您的期望。

答案 1 :(得分:1)

如果你需要@families应用程序。您应该在application_controller

中定义before_filter
class ApplicationController < ActionController::Base

  before_filter :get_product_families        

  private 
  def get_product_families
    @families = ProductFamily.find(:all, :include => :products)    
  end

end

对于您的其他问题,我们需要更多信息。检查产品,您当前的视图代码应该工作。