使用命名范围,可以创建一个带参数的范围,但如果参数是.blank?,它什么也不做。如何使用类方法获得相同的结果?
给定这样的模型
class Product
belongs_to :category
def self.in_category(id)
where('"category".id = ?', id) unless id.blank?
end
end
Product.all.in_category("")返回 nil,但我希望它与Product.all.
我唯一的想法是设置.in_category为做一些不必要if..else..end的事情,但我不想用不必要的语句使生成的 SQL 混乱。elsewhere('"category".id = *')