1

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

これにより、キャッシュがなくても常に正しい結果が得られると思います。しかし、正しい結果を同時に得ると同時にスコープキャッシュから利益を得るより良い方法はまだあるのだろうか?ありがとう。

4

1 に答える 1