【发布时间】:2019-10-13 22:46:50
【问题描述】:
在 Rails 6 应用程序中,我正在向用户列表添加一些缓存。
目前,我的代码看起来像
# users/index.html.erb
<table>
<tbody>
<%= render @users %>
</tbody>
</table>
# users/_user.html.erb
<% cache(user)do %>
<tr>
<td>
<%= user.name %>
</td>
<td>
<%= user.status %>
</td>
</tr>
缓存有效,但只要updated_at 属性更改,片段就会失效。
但是,为了优化它,我想仅在显示的属性之一发生更改时使其无效。例如,当用户更新她自己的密码时,我不想要一个新片段。
实现这一目标的首选方法是什么?下面的代码似乎有效,但我想确保它没有 dropbacks。
<% cache [user.name, user.status] do %>
在键中包含多个属性时,这也是首选方式吗?即
<% cache [user.name, user.status, user.email, user.role, user.whatever] do %>
此外,假设我想缓存整个表。我应该使用哪个键? @users 真的不行。
【问题讨论】:
标签: ruby-on-rails