Rails模型之间的关联

Rails Association between models

我试图找到我的一些模型之间的关联。

用户想通过本周的菜单select一周的菜品,菜单将有每周的菜品。但是一道菜可以属于多个菜单,所以加 belongs_to: menu.

没有意义
User
has_many: selections
Menu
start_date
end_date
has_many: dishes
Dish
has_many: menus
Selection
has_many: dishes through: menu

如有任何帮助,我们将不胜感激。

你这里有一个多对多的关系。每个菜单可以有多个菜品,每个菜品可以属于多个菜单。所以,你需要一个桥梁table,比方说'menu_items'。现在的结构应该是这样的。

User [name, email, etc]
has_many: selections
has_many: menu_items, thorugh: selections
has_many: dishes, through: menu_items

Menu [start_data, end_date]
has_many: menu_items
has_many: dishes, through: menu_items

Dish [name]
has_many: menu_items
has_many: menus, through: menu_items

MenuItem [menu_id, dish_id]
belongs_to: menu
belongs_to: dish

Selection [menu_item_id, user_id]
belongs_to: user
belongs_to: menu_item

我建议您阅读文档以更好地理解这一切背后的逻辑: https://guides.rubyonrails.org/association_basics.html