我正在处理一个网站上的菜单,其中包含食品项目的菜单。表中的每个记录还包含一个分类字段。此分类可以是汉堡包、小吃、饮料或任何其他他们想按食品项目分类的内容。
我试图显示菜单,并按此类别字段对项目进行分组。到目前为止,我的尝试如下:
我试图显示菜单,并按此类别字段对项目进行分组。到目前为止,我的尝试如下:
food_item_menus_controller.rb
...
def food_list
@foods = FoodItem.all
@food_list = @foods.group_by { |t| t.category }
end
views/food_item_menus/index.html.haml
= @food_list.group_by (@food_items.category).each do |food_list|
%p
= food_list.name
%ul
- for food_items in food_items
%li
= food_items.name
我的错误是我有一个空对象。我猜测我的对@foods的调用没有返回任何东西。
models/food_item.rb
class FoodItem < ActiveRecord::Base
has_many :menus, :through => :food_item_menus
has_many :food_item_menus
end
我设置错了吗?或者我的想法错了,如果我在视图中调用@foods,它实际上没有调用我在控制器中设置的变量吗?我越想弄清楚这个问题,就越对一切感到困惑,包括基础知识。
@foods
,而是“引用”它。你可以调用方法。你可以使用rails c
(控制台)验证FoodItem.all
是否返回了你期望的结果。@foods.each do |category|
很奇怪,因为每个对象实际上都是一个FoodItem
,而不是一个类别。 - Dave Newton