在Rails中缓存(2.1),在视图中没有太多逻辑

时间:2011-11-23 18:10:42

标签: ruby-on-rails ruby caching

我最近进入了Rails中的页面/片段缓存(感谢Railscast #90)。但是当我自己尝试时,它让我的观点更加丑陋。

在大多数情况下,我在互联网上找到的例子只是缓存了一个简单的实体查询(大多数情况下,“most_recent_products”

但是当我开始使用用户的最新文章(简单的博客示例)缓存用户个人资料时,它会很快变得混乱。

实施例

show.html.erb:

# some code
<% cache "user#{params[:id]}" do %>
<div id="user">
  <h2>Product.find(params[:id])</h2>
  <ul>
  <% for article in Articles.find_by_user(Product.find(params[:id])) %>
    <li><%= link_to h(article), article %></li>
  <% end %>
  </ul>
</div>
<% end %>
# some code

如果我不想进行单个数据库查询(缓存时),这就是要做的事情(所有查询必须进入缓存块)。

我知道你可以通过局部来简化它,或者将它存储在一个变量中,但是只要涉及多个实体,你就需要在视图中执行很多逻辑。

是否有更好的方法可以在其他地方加载所需的所有变量(@ user,@ article),但只在需要时填充它们(我不想检查控制器中的缓存)

0 个答案:

没有答案