Rails Ассоциация между моделями - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь найти связь между некоторыми из моих моделей.

Пользователь хочет выбрать блюда на неделю в меню текущей недели, меню будет содержать блюда на каждую неделю. но di sh может принадлежать нескольким меню, поэтому не имеет смысла добавлять принадлежность_to: menu.

User
has_many: selections
Menu
start_date
end_date
has_many: dishes
Dish
has_many: menus
Selection
has_many: dishes through: menu

Любая помощь приветствуется.

1 Ответ

3 голосов
/ 15 марта 2020

У вас здесь отношения многие ко многим. Каждое меню может иметь несколько блюд, и каждый Di sh может принадлежать нескольким меню. Итак, вам нужна таблица моста, скажем, «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

Я предлагаю вам go в документации, чтобы лучше понять логику c, стоящую за всем этим: https://guides.rubyonrails.org/association_basics.html

...