掃除機とキャッシングの問題があります。掃除機が呼び出されたときに、Railsはキャッシュ/ .htmlページを削除していません
/cache内の.htmlファイルが最初のビューで生成されています。
必要に応じてSweeperアクションが呼び出されています。
しかし、スイーパーアクションは/キャッシュ
次のコードから.htmlのページを削除されていませんが、私の/コントローラおよび/スイーパーディレクトリからストリップダウンされます。 puts
は両方ともログを記録するので、私たちは正常に実行されていることを知っています - 期限切れコマンドはファイルを削除していないようです。
誰かが私が嘘をつくことができるアイデアを持っていますか?
class WidgetsController < ApplicationController
cache_sweeper :widget_sweeper
caches_page :help
def help
render :template => '/widgets/help.html'
end
end
class WidgetSweeper < ActionController::Caching::Sweeper
observe HelpPage
def after_save(record)
puts "record "
puts record.inspect
expire_page(:controller => 'widgets', :action => 'help')
puts "ok!"
end
end
私は少し奇妙だと思います。あなたはモデルを観察するはずです。あなたのモデルはHelpPageという名前ですか? – apneadiving
モデルの名前を変更し、いくつかの要素を明確にしました。私はafter_saveに行ったことを説明したかっただけですが、expire_pageは機能しません。私もexpire_page( '/ widgets/help')を試しました –
HTMLページに渡されるパラメータはありますか?たとえば、/ widgets/help?param = 234?また、キャッシュされたページがウィジェット/ help.htmlとして保存されていて、別の名前ではないことを確認しましたか? –