パブリックにアクセス可能なエンドポイントを使用して、コントローラー アクションのキャッシュを期限切れにしてから更新しようとしています。
現在、私のアプリでは、/all はキャッシュされた json を返し、/update はキャッシュを期限切れにします。以下の既存の関連コードを確認できます。私がやりたいのは、キャッシュを期限切れにするだけでなく、強制的に更新することです。だから、私の質問は:
アクションをヒットせずに、有効期限が切れた後にアクションキャッシュの更新を開始する方法はありますか?
それに対する答えが「いいえ」である場合 (私が疑い始めているように)、これを行うための最良の方法は何でしょうか? 更新アクションが 301 リダイレクトではなく HTTP 200 ステータスを返す必要があるため、/all へのリダイレクトだけはオプションではありません。
ベンダーコントローラー
caches_action :all, :expires_in=>2.weeks
....
def all
respond_to do |format|
format.json { render :json => Vendor.all }
format.html { render :json => Vendor.all }
end
end
....
def update
render :nothing => true
expire_action :action => :all
end