Ruby on Rails 俄罗斯娃娃缓存
示例
您可能希望将缓存的片段嵌套在其他缓存的片段中。这称为Russiandollcaching。
这样做的好处Russiandollcaching是,如果更新单个产品,则在重新生成外部片段时可以重用所有其他内部片段。
如上一节中所述,如果updated_at缓存文件直接依赖的记录的更改值更改,则缓存文件将过期。但是,这不会使片段嵌套在其中的任何缓存失效。
例如,采用以下视图:
<% cache product do %> <%= renderproduct.games%> <% end %>
依次呈现此视图:
<% cache game do %> <%= render game %> <% end %>
如果更改了游戏的任何属性,则该updated_at值将设置为当前时间,从而使缓存过期。
但是,由于updated_at不会更改产品对象,因此该缓存不会过期,并且您的应用将提供过时的数据。为了解决这个问题,我们将模型与touch方法联系在一起:
class Product < ApplicationRecord has_many :games end class Game < ApplicationRecord belongs_to :product, touch: true end
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法