如何在Rails中查询集合的子集?

时间:2014-09-13 08:07:20

标签: sql ruby-on-rails rails-activerecord

如何在Rails中查询具有给定集合子集的所有文档?

例如,假设我bars有一组有库存的ingredientsrecipes,其中包含一组必需的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;成分。

0 个答案:

没有答案