【发布时间】:2016-07-18 14:34:21
【问题描述】:
我对如何为一个菜单项分配多个标签感到困惑。
如果我有一个名为“Tacos”的新菜单项,我希望该菜单项具有“Spicy”和“Protein”标签。
同样,如果我有一个名为“牛排”的新菜单项,我想将相同的“蛋白质”标签应用到该项目。这可能吗?
class MenuTag < ActiveRecord::Base
belongs_to :menu_item
end
class MenuItem < ActiveRecord::Base
has_many :menu_tags
end
food_one = MenuItem.new(name: "Tacos", tags: NOT SURE WHAT GOES HERE???)
food_two = MenuItem.new(name: "Steak", tags: NOT SURE WHAT GOES HERE???)
spicy = MenuTag.new(name: "Spicy", menu_item_id: 1)
protein = MenuTag.new(name: "Protein, menu_item_id: 1,2) <---- can I assign two id's here???
【问题讨论】:
-
你想要的被称为拥有和属于多(HABTM)关系。并且有两种方法可以在 Rails 上实现它。知道您知道名称应该更容易找到正确的文档。
-
你不认为你在做一对多的反面吗?如果一个菜单项有很多标签,那么如何为一个标签传递两个菜单项 ID?
-
那么这应该是多对多吗?
标签: ruby-on-rails tags one-to-many