对 one_to_many 关系感到困惑 Rails
Confusion on one_to_many relationships Rails
我对如何将多个标签分配给一个菜单项感到困惑。
如果我有一个名为 'Tacos' 的新菜单项,我希望为该菜单项分配标签 'Spicy' 和 'Protein'。
同样,如果我有一个名为 'Steak' 的新菜单项,我想将相同的 '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???
你如何使用它:
food_one = MenuItem.create(name: "Tacos", menu_tags: [menu_tag_1, menu_tag_2, ...])
food_one.menu_tags.create(name: "Spicy")
或反过来:
MenuTag.create(name: "Protein", menu_item: food_one)# using instances
MenuTag.create(name: "Protein", menu_item_id: food_one.id) # using ids
注意:您需要创建一个项目才能关联它们。
我对如何将多个标签分配给一个菜单项感到困惑。
如果我有一个名为 'Tacos' 的新菜单项,我希望为该菜单项分配标签 'Spicy' 和 'Protein'。
同样,如果我有一个名为 'Steak' 的新菜单项,我想将相同的 '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???
你如何使用它:
food_one = MenuItem.create(name: "Tacos", menu_tags: [menu_tag_1, menu_tag_2, ...])
food_one.menu_tags.create(name: "Spicy")
或反过来:
MenuTag.create(name: "Protein", menu_item: food_one)# using instances
MenuTag.create(name: "Protein", menu_item_id: food_one.id) # using ids
注意:您需要创建一个项目才能关联它们。