这让我发疯。我已经进行了大量的谷歌和 stackoverflow 搜索,但找不到解决方案。我有 2 个模型:FoodMenu 和 Product。 FoodMenu has_many:产品和产品属于:food_menu。产品表有一个“food_menu_id”列,我还完成了 add_index :products, :food_menu_id。
我想创建一个列出所有 FoodMenus 及其产品的 View 。在 View 文件夹中,我有一个包含“menus.html.erb”的页面文件夹。在pages.controller.rb中,我有:
def menus
@food_menus = FoodMenu.includes(:products).all
end
在menus.html.erb中,我有:
<%= @food_menus.each do |food_menu| %>
<%= food_menu.name %>
<ul>
<%= food_menu.products.each do |product| %>
<li><%= product.name %></li>
<% end %>
</ul>
<% end %>
这将返回预期的数据,除了在每组产品之后,它还显示完整的产品数组,然后在最后,它显示完整的 FoodMenus 数组。为什么会这样以及我该如何解决它?
通过完整数组,我的意思是: [#FoodMenu id:1,名称:“三明治”,描述:“立即发布”,created_at:“2011-12-21 20:39:42”,updated_at:“2011-12-21 20:39:42 ">,#FoodMenu id:2,名称:“披萨”,描述:“新鲜的本地面团”,created_at:“2011-12-21 20:40:03”,updated_at:“2011-12-21 20:40: 03">]
最佳答案
each
应该看起来像这样:
<% food_menu.products.each do |product| %>
each
返回调用它的枚举(“数组”,尽管它不是一个真实数组)。
<%= %>
渲染其中的值。在本例中,看起来像数组的东西——each
的返回值.
关于ruby-on-rails - rails 3.1 : How can I stop the view from displaying the array along with the data for 2 associated models?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609395/