过滤轨道记录2个子记录模型实例

时间:2017-02-10 10:50:33

标签: ruby-on-rails ruby activerecord filter

我试图根据2个标签过滤产品列表,

class Product < ActiveRecord::Base
  has_many :tags
end

class Tag < ActiveRecord::Base {
          :id => :integer,
  :created_at => :datetime,
  :updated_at => :datetime,
         :key => :string
}

如何格式化一个查询语句,该查询语句允许我查找一个包含2个标签的产品,一个带有密钥&#39;易碎的&#39;以及一个带有密钥&#39;易腐的&#39;?

1 个答案:

答案 0 :(得分:1)

Product.joins(:tags).where("tags.key IN (?)", ['fragile', 'perishable']).group('products.id').having('COUNT(tags.id) = ?', 2)