私はレールアプリケーションを持っており、今日作成されたすべての注文を照会する今日の範囲を持つ注文モデルを持っています。Rails4:モデルスコープを編集するたびにコンソールを再起動する必要があるのはなぜですか?
アプリ/モデル/ order.rb
scope :today, -> { where("created_at >= ?", Time.current.in_time_zone("Zone").beginning_of_day) }
と私は、この範囲にいくつかの機能を追加し、それを編集することを決めたまでそれはコンソールに罰金働いていた...
scope :today, -> { where("shift_id = ? AND created_at >= ?", 1, Time.current.in_time_zone("Zone").beginning_of_day) }
とこの編集をテストするためにコンソールに戻ったときに保存されたコンソールは、編集前と同じ結果を与え続けました。私がRails Consoleを再起動するまで。
なぜこの現象が発生するのですか?それは、生産時にアプリケーションのパフォーマンスや動作に影響すると考えました。
また、私は、このスコープを2つのスコープに分割してスコープチェーンを使用する方がパフォーマンスが優れていると思いましたか?
Re:性能連鎖はあまり効果的ではありませんが、より重要なのは、メンテナンス性が最適化されていることです。これは高価です。ほとんどの場合、変更、テスト、理解するのが簡単です。 – coreyward