【发布时间】:2015-11-09 13:00:14
【问题描述】:
我是缓存新手,我不确定我最好的做法是什么。
我想缓存依赖于复杂查询的视图的一部分。查询类似于:
@sessions_next_week = group_by_wday(LittleClassSession.location_only([1,2]).age_range_only(age_from, age_to).supports_dropins_only(support).approved_users_only.next_week)
您会在上面看到许多作用域和方法被调用。视图呈现一个名为 @sessions_next_week 的实例变量,如下所示:
<% @sessions_next_week.each do |wday, lcs| %>
<h3><%= wday %></h3>
<%= render partial: 'table_head' %>
<% lcs.each do |s| %>
<%= render partial: 'table_row', :locals => {:s => s, :show_day => true} %>
<% end %>
<%= render partial: 'table_foot' %>
<% end %>
如您所见,@sessions_next_week 被迭代,其子元素也被迭代。鉴于此,以及实例变量中查询结果的性质,我不确定在哪里实现缓存。在模型中?在视图中?
所以我的问题是:
- 我需要模型缓存还是可以在视图中执行此操作?
- 正确的实现方式是什么?
【问题讨论】:
标签: ruby-on-rails caching