我已经看过多态协会和STI,但我不知道它们是否适用于我的特定用例。在我的应用程序中,我有以下相关类:
class Restaurant < ApplicationRecord
belongs_to :owner, class_name: "User"
has_many :menus
has_many :dishes
has_many :categories
has_many :bookings
has_many :simple_bookings
mount_uploader :photo, PhotoUploader
end
class Dish < ApplicationRecord
has_many :menu_dishes
has_many :menus, through: :menu_dishes
belongs_to :category
belongs_to :restaurant
mount_uploader :photo, PhotoUploader
end
class Menu < ApplicationRecord
belongs_to :restaurant
has_many :bookings
has_many :categories
has_many :menu_dishes
has_many :dishes, through: :menu_disheshas_many :menu_dishes
end
class MenuDish < ApplicationRecord
belongs_to :dish
belongs_to :menu
end
到目前为止,用户流程如下: 餐馆老板报名参加餐厅的菜肴。然后,此所有者创建一个包含不同MenuDishes的菜单。 之后,用户可以搜索不同的菜单并进行预订。
我的问题如下: 我想实现一个功能,其中所有者可以添加最多3个MenuDishOptions(属于MenuDishes),以便用户可以使用MenuDish的可用MenuDishOption更改每个MenuDish。
换句话说,我希望每个MenuDish包含许多MenuDishOptions。选择MenuDishOption后,MenuDish将传递给MenuDishOption,并将选定的MenuDishOption传递给MenuDish。
因此,MenuDishOption类看起来像这样:
class MenuDishOption < ApplicationRecord
belongs_to :menu_dish
has_one :dish
belongs_to :menu, through: menu_dishes
end
MenuDish类将更新为:
class MenuDish < ApplicationRecord
has_many :menu_dish_options
belongs_to :menu
belongs_to :dish
end
请告诉我是否需要分享更多信息,并感谢花费时间来帮助这个新手的任何人。