2016-11-26 34 views
0

我有4個表格,它們都是相互連接的。通過其他表格有很多關係

restaurant -> has_many -> menus 
menu -> has_many -> categories 
category -> has_many -> menu items 

我試圖通過菜單表從餐廳訪問類別和它不工作

我想從餐桌訪問類別和菜單項,這可能

例如

Restaurant.find(1).categories 
Restaurant.find(1).menu_items 

回答

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代碼,它會使用你「內在JOIN`操作顯示。