私のコントローラは、このました:レール3のキャッシング:という名前のルートのためのアクションを期限切れ
:私はこれを見るログファイルにmatch '/render_c_t/:channel_id' => 'render#render_ticker_for_channel', :as => :render_channel_ticker
:私はこれを持って私のルートで
caches_action :render_ticker_for_channel, :expires_in => 30.seconds
ファイル
Write fragment views/mcr3.dev/render_c_t/63 (11.6ms)
これを手動で期限切れにするにはどうすればよいですか?私は、レンダリングコントローラとは別のコントローラからこれを期限切れにする必要がありますが、レンダリングコントローラ内でさえも、正しいものを期限切れにすることはできません。
私が行う場合:
expire_action(:controller => 'render', :action => 'render_ticker_for_channel', :id => c.id)
私は以下を参照してください
Expire fragment views/mcr3.dev/render/render_ticker_for_channel/63 (3.2ms)
私が行う場合:
私は見expire_action(:controller => 'render', :action => 'render_c_t', :id => c.id)
:
Expire fragment views/mcr3.dev/render/render_c_t/63 (3.2ms)
この:
expire_action("render_c_t/#{c.id}")
が生成する:
Expire fragment views/render_c_t/63 (3.5ms)
は、どのように私はそれがcaches_action 'を生成していることと同じパスを期限切れに取得することができます!
私は完全な本格的な回答としてこれを追加するには自信がありませんが、バックドアを試しましたか? 'Rails.application.routes.url_helpers'はあなたのヘルパーにアクセスして、Locationヘッダーのブラウザに送られるパスやURLを返します。 'Rails.application.routes.url_helpers.render_ticker_for_channel_path(63)'と 'Rails.application.routes.url_helpers.render_ticker_for_channel(63、:host => 'mcr3)を試してください。dev ') '結果の文字列を(ある操作で)' expire_action'に渡し、正しいキャッシュされたチャンクを見つけることができるかもしれません。醜いですが、** file_store **にキャッシュがある場合は、 –