Tom*_*Tom 3 caching ruby-on-rails
我正在使用片段缓存,但我有一个用户特定的内联代码,如:
<% cache @page do %>
stuff here
<% if current_user %>
user specific
<% end %>
more here
<% end %>
Run Code Online (Sandbox Code Playgroud)
所以我想排除用户特定的几个代码块.有没有办法在Rails中这样做,或者我应该在开头做一个if语句,并为登录用户和常规访问者制作不同的缓存?(我将以这种方式重复代码).
对于每用户片段,您可以将数组放在数组中:
<% cache [@page, current_user] do %>
Run Code Online (Sandbox Code Playgroud)
Rails会从中创建一个缓存密钥,例如:
pages/page_id-page_timestamp/users/user_id-user_timestamp
Run Code Online (Sandbox Code Playgroud)
这样,您的片段将在用户/页面更新时失效,因为时间戳来自它们updated_at(有关详细信息,请参阅cache_key).
| 归档时间: |
|
| 查看次数: |
961 次 |
| 最近记录: |