我正在关注'使用Rails 4开发敏捷Web开发'一书,并且我在第105页关于缓存。
我在index.html.erb
缓存不起作用Rails 4.0
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<h1>Your Pragmatic Catalog</h1>
<% cache ['store', Product.latest] do %>
<% @products.each do |product| %>
<% cache ['entry', product] do %>
<div class="entry">
<%= image_tag(product.image_url) %>
<h3><%= product.title %></h3>
<%= sanitize(product.description) %>
<div class="price_line">
<span class="price"><%= number_to_currency(product.price) %></span>
</div>
</div>
<% end %>
<% end %>
<% end %>
第一个疑问,下面的代码如下:
1)什么是cache ['store', Product.latest]
究竟怎么办?它创建一个缓存,可从所有StoreController操作中获得,命名为“store”,并将缓存与Product.latest关联:为什么我应该做最后一件事?为什么我需要将缓存关联到Product.latest?
总是在同一页上,这本书说:“至于验证这个工作,遗憾的是没有太多可以看到,如果你去那个页面,你应该看不到任何变化,这实际上是重点!您可以做的最好的做法是在不更新任何产品的情况下更改模板内任何位置的模板,并验证您没有看到该更新,因为该页面的缓存版本尚未更新。“
所以,我想是这样的:
<% cache ['store', Product.latest] do %>
"hello"
........
........
<% end %>
但我仍然得到这个更新,页面显示我的“hello”字符串,为什么会这样?我不应该看到它吗?
P.S.很显然,我编辑了我的config/environments/development.rb
并重新启动服务器
您在此期间是否添加了更多产品?也就是说,'Product.latest'是否改变了? –
不,我什么也没加 – zer0uno