2013-04-10 61 views
0

我想缓存一个操作,我希望它根据请求参数('type')的不同而不同。Rails 3中的缓存操作

我该怎么做?我希望不仅缓存渲染,还要计算和DB请求(大部分操作本身)

一种可能的解决方案是将不同的结果保存到文件中,并且一旦创建后重定向到每种类型的代理动作并呈现它们,但它过于复杂的解决方案,也许Rails有一个更好的内置解决方案。

可能吗?

谢谢

回答

0

可以使用before filter检查参数类型,并采取必要的行动继续进行。

before_filter :check_params, :only => :some_action 
caches_action :some_action 

def check_params 
    if params["type"] == 'something' 
    query_method1 
    else 
    query_method2 
    end 
end 
+0

这是一个进展,但随后的行动:some_action将获得缓存使用任意查询方法,而不是每种类型 – kambi 2013-04-10 07:12:56