私はActiveResourceを使って作業を始めました。モデルのいくつかのビットをキャッシュすることにしましたので、私は絶えずAPIを打っていません。いいよ。ActiveResource models + Sweepers
私はキャッシュの期限が切れているのを見て、掃除機を実装することに決めました。これは動作していません。
ARモデル:
class Myresource < ActiveResource::Base
extend ActiveModel::Callbacks
define_model_callbacks :update
"stuff"
def current
Rails.cache.fetch("/key/#{self.id}", :expires_in => 5.minutes) do
Myresource.find(ID)
end
end
end
スイーパー:
class MyresourceSweeper < ActionController::Caching::Sweeper
observe Myresource
def after_update(myresource)
expire_cache_for_myresource
end
private
def expire_cache_for_myresource
Rails.cache.delete '/key/myresource.id'
end
end
コントローラー:
cache_sweeper :myresource_sweeper
だからARとキャッシュやスイーパーとビットのみを働いた、私は理解できませんいろいろなコンボを試してみる場所。私はリソースのためにコンソールから設定したり期限切れにすることができますが、アプリケーション内ではキャッシュが設定されますが、私が行ったことは何も削除を引き起こさないことです。
提案?
はい、タイプミスは、実際のコードを例えば何かに翻訳することの一部でした。それはもう少し複雑でしたが、私はmyresourceを適切に渡していませんでした(私がまだ私が必要としていたモデルにフックをつけて作業していたときに削除した部分、 とにかく)。私はこれを横に置き、すぐにそれに戻った。ありがとう。 – blueblank