假设我在我的控制器上设置了“产品”:
# products_controller.rb
def show
@product = Product.find(params[:id])
end
在/products/show.html.erb
我得到了:
<%= render :partial => 'products/description', :locals => { :product => @product } %>
我想做这样的事情:
<% cache do %>
<%= render :partial => 'products/description', :locals => { :product => @product } %>
<% end %>
但是,正如您所看到的,description
部分采用product
局部变量,当然会为每个特定产品生成动态部分变量。
我的问题是,我如何使用Rail的缓存,所以我只需要在第一次请求特定产品时生成这部分内容?
答案 0 :(得分:2)
诀窍是给缓存一个特定的密钥,比如“product_24_description”。这样,每个缓存都会有所不同:
cache "#{dom_id product}_description" do
...
end
在您观看此视频时,请观看有关scaling Rails的视频(和相关视频)。