アクションキャッシングを実行するjson APIがあります:
class Api::V2::TagsController < Api::V2::BaseController
before_filter :set_cache_headers, :only => [:categories, :tribes]
caches_action :categories, :tribes, :expires_in => 1.hour
このキャッシュを期限切れにすることがわかった唯一の方法は、次を使用することです:
Rails.cache.delete api_v2_categories_url(:locale => nil)+'.json?'
これはひどく醜い
このひどいハックを改善するのを手伝ってくれる人はいますか?
詳細情報:
キャッシュはうまく機能し、ログにキャッシュ書き込みが表示されます:
Cache write: http://localhost:3000/api/v2/categories.json?
管理名前空間では、キャッシュを期限切れにする必要があります。試してみました:
expire_action(:controller => '/api/v2/tags', :action => 'categories', :format => :json)
失敗して出力するもの:
フラグメント ビューを期限切れにする/localhost:3000/mu-8c54ade2-cbb77ba0-4f0c28d3-607169d0.json?action=categories&controller=api/v2/tags&locale=fr
PS:私は成功せずにこの答えを試しました: rails caching: expire_action in another namespace