如何在Rails中查询具有给定集合子集的所有文档?
例如,假设我bars
有一组有库存的ingredients
和recipes
,其中包含一组必需的ingredients
。鉴于某个bar
,我想找到所有recipes
,其所需的ingredients
集合是bar
库存{{1}的子集}}。
模型定义如下:
ingredients
最初,我尝试的是:
class Bar < ActiveRecord::Base
has_many :ingredients
class Recipe < ActiveRecord::Base
has_many :ingredients
class Ingredient < ActiveRecord::Base
has_many :bars
has_many :recipes
但这似乎不起作用 - 我相信因为带有数组的@bar = Bar.find(params[:id])
@recipes = Bar.join(:ingredients).where('ingredients.id' => @bar.ingredients)
子句转换为SQL where
语句,它只检查条中是否包含任何成分&# 39;成分。