名前付きスコープを使用すると、パラメーターを取るスコープを作成できましたが、パラメーターがあった場合.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
するように設定することですが、生成されたSQLを不必要なステートメントで混乱させたくありません。if..else..end
else
where('"category".id = *')