我有4个表,所有表都相互连接。
restaurant -> has_many -> menus
menu -> has_many -> categories
category -> has_many -> menu items
我尝试通过菜单表从餐馆访问类别,但它无法正常工作
我想从餐馆桌上访问类别和菜单项,是否可能
例如
Restaurant.find(1).categories
Restaurant.find(1).menu_items
答案 0 :(得分:0)
您需要使用has_many :through
关联。 http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
添加Menu
模型
has_many :categories
has_many :menu_items, through: :categories
添加Restaurant
模型
has_many :menus
has_many :categories, through: :menus
has_many :menu_items, through: :categories
如果你看一下生成的sql代码,它会显示你使用'INNER JOIN`操作。