【问题标题】:Rails Association between models模型之间的 Rails 关联
【发布时间】:2020-03-14 23:46:09
【问题描述】:

我正在尝试找出我的一些模型之间的关联。

用户想通过本周的菜单选择一周的菜,菜单将有每周的菜。但是一个菜可以属于多个菜单,所以添加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

任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby activerecord rails-activerecord


    【解决方案1】:

    你在这里有一个多对多的关系。每个菜单可以有多个菜,每个菜可以属于多个菜单。所以,你需要一个桥接表,比如说“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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      相关资源
      最近更新 更多