Rails - 使用特定属性值缓存所有用户
Posted
技术标签:
【中文标题】Rails - 使用特定属性值缓存所有用户【英文标题】:Rails - Caching all the users with a specific attribute value 【发布时间】:2020-02-14 02:35:28 【问题描述】:在 Rails 6 应用程序中,我有一个页面显示所有管理员用户。 由于列表很少更改,我想缓存片段。
如何处理这样的缓存?
我想使它无效我应该在用户模型中使用某种after_save
回调来检查保存的用户是刚刚成为管理员还是不再是管理员。
有什么想法吗?
【问题讨论】:
【参考方案1】:无需回调。您可以设置缓存密钥,因此每次有新管理员时,密钥都会更改并生成新的缓存。例如:
<% 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
【讨论】:
感谢您的回复。管理员数量不变的情况如何。 IE。在添加 Bob 的同时将 Tony 从管理员中删除? 我认为这种情况下更好的方法是集合缓存,我会更新我的答案 集合缓存似乎正是我想要的。谢谢。以上是关于Rails - 使用特定属性值缓存所有用户的主要内容,如果未能解决你的问题,请参考以下文章