2013-04-10 73 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