响应format.json的index方法不断缓存

时间:2011-12-31 17:00:23

标签: ruby-on-rails-3 json caching passenger

我有一个Ruby on Rails网站。

class DefinitionsController < ApplicationController
   caches_page :index
   def index
     responds_to do |format|
       format.json { render json: @something}
     end
   end
end

当我点击myapp.host.com/definitions.json时,我得到了我的json数据。 但是当我调用一个使用expire_page :action => :index的函数时,我不会获得该数据的新更新,它会继续从public目录提供旧的json文件。该网站的另一个网址也已过期,但是是一个正常的网页,确实是新鲜的。

我使用Rails 3,使用Nginx和Passenger进行托管。当我使用rails server运行它时它确实可以正常工作,所以它必须是Nginx或Passenger的东西。

我需要做些什么特别的事情,例如在format => :json电话上拨打expire吗?

1 个答案:

答案 0 :(得分:1)

我认为问题在于您没有告诉expire_page缓存内容的格式,因此它假定为html。找不到缓存的html内容,它什么都不做。

尝试expire_page :action => :index, :format => 'json'