ruby-on-rails - rails 3.1 : How can I stop the view from displaying the array along with the data for 2 associated models?

标签 ruby-on-rails arrays view has-many

这让我发疯。我已经进行了大量的谷歌和 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/

相关文章:

ruby-on-rails - 你如何克隆一个 Rails 应用程序?

ruby-on-rails - Rails 是否有任何函数可以检查部分是否存在?

python - 选择 numpy 数组中特定维度的索引

c - 取消引用指向结构成员的不完整类型错误的指针

ruby-on-rails - 在 Ruby on Rails 中向 index.html.erb 添加分页 - 简单问题

ruby-on-rails - I18n::InvalidPluralizationData 错误

c - 2D char Array 和 char** 之间的区别(OR,3D char Array 和 char*** 等)

html - 从YouTube删除单词 'views'

javascript - Backbone.js - 给出 View 事件处理程序调用的严格顺序

tsql - T-SQL VIEW - CTE + UNPIVOT 对比 UNION 对比其他技术