7
實施某些幫助器方法時,有時我想將某些計算結果存儲在可從輔助方法訪問的某處作爲緩存。在Rails幫助器方法中緩存評估結果
如果我將它存儲到實例變量,它會污染實例,所以它看起來不明智這樣做。
任何存儲此類值的好地方? 或者在助手中做這麼重的計算是一個壞主意?
實施某些幫助器方法時,有時我想將某些計算結果存儲在可從輔助方法訪問的某處作爲緩存。在Rails幫助器方法中緩存評估結果
如果我將它存儲到實例變量,它會污染實例,所以它看起來不明智這樣做。
任何存儲此類值的好地方? 或者在助手中做這麼重的計算是一個壞主意?
有時我使用Rails緩存來存儲這種類型的值。代碼是這樣的,
def helper_method
Rails.cache.fetch('helper_value') do
# calculate the value if it does not exist
...
end
end
謝謝。我認爲緩存的使用並不是我所期望的,但從幫手的角度來看,這是解決問題的自然方法。謝謝。 – shigeya
只是一個提示:'config.action_controller.perform_caching = false'不會禁用Rails.cache.fetch,只有普通的ActionView'cache'助手。請參閱:http://stackoverflow.com/a/43991463/1290457 – sandre89