我有這樣的緩存Rails的片段緩存不獲取最新
<% cache [obj.id, obj.updated_at] do %>
<%= render obj %>
<% end %>
的_obj.html.erb
我
<% cache ["obj/#{obj.id}/logic", obj.updated_at] do %>
some logic
<% end %>
<% cache [obj.parent.id, obj.parent.updated_at] do %>
parent's logic logic
<% end %>
當只有父母的數據改變,我仍然得到同樣的緩存像之前一樣。的updated_at改變只有當OBJ的,內部緩存得到更新..
這是正確的行爲?不應該將高速緩存中的高速緩存部分獨立處理?或者當我觸摸obj.parent時,是否需要觸摸obj?
你on Rails的4+? – rossta 2014-10-29 12:35:15
是的,我在軌4.1.6 – 2014-10-29 12:41:01
嘗試使用'<%緩存OBJ%>'和'<%緩存obj.parent%>'來代替。假設'obj'和'obj.parent'是實例(或表現得像)ActiveRecord的 - 這意味着他們從'id'和'updated_at'計算的'cache_key'方法應對 - 那麼「俄羅斯套娃」高速緩存期滿應該工作。 – rossta 2014-10-29 12:47:29