我需要通过关联模型查询我的模型。
伪代码:@drinks = Drink.where(drink.ingredients ARE IN cabinet.ingredients)
饮料模型
class Drink < ActiveRecord::Base
attr_accessible :name
has_many :recipe_steps, :dependent => :destroy
has_many :ingredients, through: :recipe_steps
end
成分模型
class Ingredient < ActiveRecord::Base
attr_accessible :name
has_many :recipe_steps
has_many :drinks, through: :recipe_steps
has_many :cabinet_ingredients
belongs_to :cabinet
end
用户模型
class User < ActiveRecord::Base
has_one :cabinet
end
编辑:正如我所建议的那样
Drink.joins(ingredients: :cabinet_ingredients)
但是,当我从我的柜子和/或多个用户中喝一种含有 2 种成分的饮料时,它会返回同一种饮料的多条记录。
我只需要退回一份饮料的记录。另外,我只需要退回所有成分在柜子中匹配的饮料