使用查询string参数的Rails动作caching

我怎样才能caching我的REST控制器与Rails我的行动有查询string参数?

Example: GET /products/all.xml?max_price=200 

谢谢!

如果你想caching一个动作,基于所有的查询参数(或几乎所有的说),你可以做:

 caches_action :my_action, :cache_path => Proc.new { |c| c.params } 

或者,也许您只需要一些仅用于Google Analytics(分析)的参数(但不会影响您提取的logging):

 caches_action :my_action, :cache_path => Proc.new { |c| c.params.delete_if { |k,v| k.starts_with?('utm_') } } 

要使用请求url作为caching键,我做了这样的事情:

 caches_action :index, :cache_path => Proc.new {|c| c.request.url } 

在这种情况下,你应该使用片段caching:

在你的控制器中:

 cache(params[:max_price], :expires_in => 10.minute) do # get the result end