3
モデルを更新するオフラインレーキジョブがあります。それが起こると、そのモデルのshowアクションを期限切れにしたい。expire_action from model
# in lib/models/my_model.rb
after_update :expire_cache
def expire_cache
expire_action :controller => :my_models, :action => :show, :id => self
end
expire_actionがモデルで使用できないため、これは機能しません。 ActionController.new.expire_actionを呼び出すと、奇妙なルートの問題が多く発生します。これは、ルートロジックが一切結び付けられていないので妥当です。
私はexpire_actionの一般的な方法はスイーパーであると思いますが、私のモデルはコントローラのアクションによって更新されないため動作しません。
注:私はどこにでも答えを見つけることができないので、間違った方法でキャッシュを使用しているような気がします。
モデルではないので、私の理解では、コントローラのアクションにスイーパーフックであり、これは動作しないでしょうアクションの一部として更新されました。それは本当ですか? – phillee
掃除機はモデルを観察するだけでなく、コントローラにも接続されています(たとえば、ページを期限切れにすることができます)。 '' 'MyModel'''を実行することで、スイーパはモデルの変更を監視し、その変更に基づいてページを期限切れにすることができます。 – Veraticus
したがって、レールサーバーが稼動している場合、別のオフラインレーキタスクによって行われたモデルの変更を検出しますか? – phillee