【发布时间】:2020-02-14 02:35:28
【问题描述】:
在 Rails 6 应用程序中,我有一个页面显示所有管理员用户。 由于列表很少更改,我想缓存片段。
如何处理这样的缓存?
我想使它无效我应该在用户模型中使用某种after_save 回调来检查保存的用户是刚刚成为管理员还是不再是管理员。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails caching
在 Rails 6 应用程序中,我有一个页面显示所有管理员用户。 由于列表很少更改,我想缓存片段。
如何处理这样的缓存?
我想使它无效我应该在用户模型中使用某种after_save 回调来检查保存的用户是刚刚成为管理员还是不再是管理员。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails caching
无需回调。您可以设置缓存密钥,因此每次有新管理员时,密钥都会更改并生成新的缓存。例如:
<% cache "admin-list-#{@admins.count}" do %>
<% @admins.each do |admin| %>
<%= admin.name %>
<% end %>
<% end %>
如果管理员信息发生变化而管理员用户数量不变,您可以使用集合缓存:
https://guides.rubyonrails.org/caching_with_rails.html#collection-caching
<%= render partial: 'users/admin', collection: @admins, cached: true %>
要在开发中测试缓存,请使用以下命令:
rails dev:cache
【讨论】: