我有这样的事情:
class Suite < ActiveRecord::Base
has_many :tests
end
class Test < ActiveRecord::Base
belongs_to :suite
end
我正在使用 cache_digests gem 来进行片段缓存。我希望当我更新套件对象时,子测试缓存过期。我试图touch: true
在has_many
关联中添加一个但没有成功。
我怎样才能做到这一点?
提前致谢
编辑
我在做我的缓存是这样的:
<% cache test do %>
<tr>
etc...
<% cache test.suite do %>
etc..
<% end %>
</tr>
<% end %>
但它不起作用,因为当我编辑一个套件时,他们的测试没有被触及。因此,我将缓存声明更改为如下内容:
<% cache [test, test.suite] do %>
etc..
<% end %>
它按预期工作。
当我编辑一个测试或一个套件时,其中一个被触及,所以片段过期了,我得到了预期的新版本。
感谢@taryn-east 的帮助。