0
私は、関連付けで定義されたクラスメソッドで次のコードを持っています。その値がキャッシュされるのか、それともスコープだけのものなのでしょうか? インスタンスまたはクラスメソッドでTime.zone.now.to_dateを使用していますか?
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) }
のようなラムダを使用することです、私はクラスまたはインスタンスメソッドのためとあれば似た何かをする必要がありますそれは正確に何ですか?
私たちのデータベースはいくつかの米国時間帯として日付を保存するのに十分なほど愚かですが、ありがとうございました。私はそれを変更するつもりです。ストレージにUTC以外のものを使用する理由はありません – mhenrixon