有没有办法将属性的ActiveRecord查询默认为“any”?

时间:2015-07-03 01:32:12

标签: ruby-on-rails activerecord

我在available模型上有一个Product属性,它是一个布尔值。

我正在定义一个带参数的辅助方法,例如:

def family_products(available: true)
 Product.where(available: available)
end

这适用于truefalse - 但我希望默认为all

是否可以不创建条件包装器?

2 个答案:

答案 0 :(得分:2)

我会在scope模型中定义Product

class Product < ActiveRecord::Base
scope :all_family_products, -> { where('available = ? or available = ?', true, false) }
end

现在调用Product.all_family_products会返回 可用产品(可用= true) 不可用产品(可用= false)

答案 1 :(得分:0)

试试这个:

def family_products(available: [true, false])
  Product.where(available: [available])
end