【发布时间】:2019-10-28 19:42:17
【问题描述】:
我有这个场景(主视图模板):
<% if @cars.count(:all) > 0 %>
<% presenter.collection.each_pair do |date, collection| %>
<tr>
<td>
...
</td>
</tr>
<%= render partial: 'car_row_content', collection: collection, as: :car, cached: Proc.new{|car| [cache_prefix, acl_fingerprint, car.record] } %>
<% end %>
<% end %>
下面是部分car_row_content 的样子:
<tr>
<td>
<%= car.something1 %>
</td>
<td>
<%= car.something2 %>
</td>
<td>
<%= car.something3 %>
</td>
</tr>
在这部分中,something1 和 something2 属性始终保持不变,但 something3 属性变化很大(一天几次)。
这里发生了什么 - 当我们的一位管理员更改属性 something3 时,它通常不会立即“刷新”主视图模板,我们会在那里看到“旧”值。如何强制 Rails 缓存在发生更改时立即刷新?
【问题讨论】:
标签: ruby-on-rails caching