私はこのようなコードを持っています:
class Item < ActiveRecord::Base
class << self
def for_category(c)
if c
return where(:category_id => c.id)
else
return self
end
end
end
end
私はそれをこのように呼ぶ必要があります:
Item.where("created_at > ?", Time.now - 1.week).for_category(@category)
@categoryはnullの場合とnullでない場合があります。カテゴリがnullの場合、メソッドを単純にパススルーして、関係を変更せずに返すようにします。もちろん、returnselfは単にItemクラスを返します。
これを行う正しい方法は何でしょうか?