使用查询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