我是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
我花了很多时间试图调整关联而没有运气。谢谢。
答案 0 :(得分:0)
尝试:菜单而不是:菜单
class Restaurant < ApplicationRecord
has_one :menu
has_many :items, through: :menu