「Rails 4 を使用したアジャイル Web 開発」の本を読んでいますが、キャッシングに関する 105 ページで行き詰っています。
私は次のコードを持っていますindex.html.erb
<% 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」という文字列が表示されます。なぜですか? 私はそれを見るべきではありませんか?
PS明らかに私は自分を編集config/environments/development.rb
してサーバーを再起動しました