我有这种情况:Rails的 - 什么是建立查询多个标签的最有效的方式
两种型号: - 膳食 - 标签
随着many-to-many
关系,所以产品可以分配很多标签。
没有为关联附加表(meal_id
,tag_id
) 然后用户选择一些标签(例如8)。
我必须写在滑轨查询(但也可以是仅SQL想法),其返回:已分配的至少一个标签,从由用户选择的
- 膳食。
- 饭菜已分配的所有选择标签。
我不知道如何做到这一点的最有效的方式。你能帮我一下吗?
Meal.rb
class Meal < ActiveRecord::Base
has_and_belongs_to_many :tags
end
Tag.rb
class Tag < ActiveRecord::Base
has_and_belongs_to_many :meals
end
你说的附加表(meal_id,tag_id)是另一个模型(我认为),它的名字是什么?顺便说一下,为什么你需要另一个关联表,如果你可以在你的产品表中添加一个'tag_id'的列,并且在你的标签表中添加'meal_id'以符合关系 –
不,这不是另一个表。这只是联想。我无法将tag_id添加到餐桌和meal_id来标记餐桌,因为餐可以分配多个标记。 – user2948135
@ user2948135您应该在您的模型产品和标签中显示代码,以便我们看到您的关联是如何设置的。但是你上面的评论是错误的,实际上你可以做你说的不可以的,它被称为has_many协会。请参阅文档:http://guides.rubyonrails.org/association_basics。html#这个有很多联系 –