gpt4 book ai didi

ruby-on-rails - Rails - 如何从片段缓存中排除代码块

转载 作者:行者123 更新时间:2023-12-04 06:20:48 24 4
gpt4 key购买 nike

我正在使用片段缓存,但我有用户特定的内联代码,例如:

<% cache @page do %>
stuff here
<% if current_user %>
user specific
<% end %>
more here
<% end %>

所以我想排除用户特定的几个代码块。有没有办法在 Rails 中做到这一点,或者我应该在开始时做一个 if 语句并为登录用户和普通访问者制作不同的缓存? (我将以这种方式重复大量代码)。

最佳答案

对于每个用户的片段,您可以将模型放入一个数组中:

<% cache [@page, current_user] do %>

Rails 将从它们中创建一个缓存键,例如:

pages/page_id-page_timestamp/users/user_id-user_timestamp

这样您的片段将在用户/页面更新时失效,因为时间戳来自它们的 updated_at(详情请参阅 cache_key)。

关于ruby-on-rails - Rails - 如何从片段缓存中排除代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13857160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com