-1
讓我們舉個例子吧。替代正常寶石紅寶石方法的動作緩存?
def get_data(param1,param2,param3)
#do something
#make some api calls
end
此方法不屬於控制器。我在我的寶石中使用這種方法在我的ruby類中。如何根據參數來緩存方法的結果。類似於Rails中的動作緩存的過程有過期能力。
讓我們舉個例子吧。替代正常寶石紅寶石方法的動作緩存?
def get_data(param1,param2,param3)
#do something
#make some api calls
end
此方法不屬於控制器。我在我的寶石中使用這種方法在我的ruby類中。如何根據參數來緩存方法的結果。類似於Rails中的動作緩存的過程有過期能力。
您可以使用這種低級別的緩存:
def competing_price
Rails.cache.fetch("#{param1}-#{param2}-#{param3}", expires_in: 12.hours) do
# do something..
end
end
它沒有任何關係,你必須這樣做,只在控制器或模型。你可以在任何地方像你的方法一樣使用它。
我已經這樣做了。但我保留這作爲第二個選項 – Praveenkumar
的可能的複製[?什麼是memoize的跨越Ruby中一個類的實例數據的好辦法(http://stackoverflow.com/questions/13552585/what-是一個很好的方式來記憶數據跨越多個實例的紅寶石) –
另外http://www.justinweiss.com/articles/4-simple-memoization- patterns-in-ruby-and-one-gem/ –
memoize是一個很好的建議,但我沒有把我的整個代碼。它使一些服務電話內,所以我需要過期時間那爲什麼我要使用緩存。@ BradWerth – Praveenkumar