Has_Many_Through& Active_Record_Collection_Proxy错误

时间:2017-09-14 21:02:48

标签: ruby-on-rails database activerecord rails-activerecord model-associations

我是rails的新手,正在开发我的第一个小项目

我的rails应用程序中有3个模型:

餐厅< - (主模型)

菜单< - (直接与餐厅相关,餐厅只能有1个菜单)

项目< - (直接与菜单相关,菜单有很多项目)

我无法设置协会&似乎无法做对。我的模型如下:

 class Restaurant < ApplicationRecord  
  has_one :menu
  has_many :items, through: :menus

class Menu < ApplicationRecord
  belongs_to :restaurant
  has_many :items


class Item < ApplicationRecord
  belongs_to :menu

当我尝试通过调用我得到的类来呈现页面上的局部视图时 “

  

#的未定义方法`items'   菜单:: ActiveRecord_Associations_CollectionProxy:0x3a74d08&GT;

我正在做的事情:

        <%= render @menus%>
        <%= render @items %>

我已成功显示MENU部分,但显示项目会引发未定义的方法错误。

这是我的餐厅控制员:

  def show
    @menus = Menu.where(:restaurant_id => @restaurant.id)
    @items = Item.where(:menu_id => @menus.id)
  end

我花了很多时间试图调整关联而没有运气。谢谢。

1 个答案:

答案 0 :(得分:0)

尝试:菜单而不是:菜单

class Restaurant < ApplicationRecord  
  has_one :menu
  has_many :items, through: :menu