あなたはActiveRecordのスコープに現在の日付を評価しようとした場合、アプリケーションのコードが代わりにロードされるとき、それは可能性が高いため、これが評価されることに不正確になります実行時にあなたはこのように、ラムダでこれを通過する必要があります発生した時間への変換があるからファンキーな例である(すなわち:ActiveRecordのスコープなど)
scope :today, lambda { where(:submitted_at => Date.today.to_time.utc..(Date.today + 1).to_time.utc) }
を。とにかく、私の質問はですが、それ以外はどこですか? ActiveRecordスコープは、実行時に評価されないDateへの呼び出しをカウントできる唯一の場所ですか?
優れた答えをありがとう。私の即時の尋ねのモチベーションは、同じ「スコープ内の日付」の間違いが私の検証で起こらないようにしました。たとえば、Validateブロック内でDate.todayを使用します。検証はActiveRecordオブジェクトのライフサイクルで実行時に評価されるため、これは問題ではないようです。 – Blastula