アソシエーションで定義されたクラスメソッドに次のコードがある場合。その値はキャッシュされますか、それともスコープ専用ですか?
def for_today
where 'planned_for = ?', Time.zone.now
end
明確にするために、スコープを使用して以下を実行すると、Time.zone.now値はクラスがキャッシュされたときと同じになり、上記またはその回避方法でこれが発生しないようにします。
scope :for_today, where('planned_for = ?', Time.zone.now)
したがって、動的な値を使用しているスコープを作成する正しい方法は、次のようなラムダを使用することです。
scope :for_today, lambda { where('planned_for = ?', Time.zone.now) }
クラスまたはインスタンスメソッドに対して同様のことを行う必要がありますか?そうであれば、正確には何ですか?