Herokuのキャッシュスコープの結果のように見えます。私の質問は、キャッシュするタイミング、スコープの結果を更新するタイミング、スコープを正しく使用する方法を決定する方法です。私のコードでは、次のような質問モデルの名前スコープがあります
class Question < ActiveRecord::Base
scope :today, where('show_date = ?', Time.now.localtime("-07:00").strftime("%Y-%m-%d"))
end
そして、それは常に私に同じキャッシュされた結果を与え始めます。質問データを変更すると、結果が更新される可能性があります。簡単な調査で、関連するトピックがわかりました。Herokuにキャッシュされたnamed_scope?。
私はすでにコードを次のように変更しました:
class Question < ActiveRecord::Base
def self.today
today_string = Time.now.localtime("-07:00").strftime("%Y-%m-%d");
where('show_date=?', today_string)
end
end
これにより、キャッシュがなくても常に正しい結果が得られると思います。しかし、正しい結果を同時に得ると同時にスコープキャッシュから利益を得るより良い方法はまだあるのだろうか?ありがとう。