我在使用memcached在Rails 3.0.4應用程序中查看片段級緩存時遇到了問題。我對發生的事情有點困惑,但我認爲這與緩存區域內輸出的方式有關。我在-vv模式下本地運行memcached,並且可以看到片段正確保存/拉出的關鍵,問題在於memcached中項目的值。Rails 3片段緩存輸出問題
下面是我在做什麼:
< ... html before ... >
<%= cache("item_#{i.id}") do %>
<%= render :partial => 'shared/item', :locals => { :item => i, :functionality => [:set_as_default] } %>
<% end %>
< ... html after ... >
當我看到在緩存中的關鍵價值,它具有HTML代碼是在片段緩存塊內頁,也有外(從之前的HTML和HTML之後的地區)。這裏有一個有趣的部分,也是我認爲它與捕獲輸出有關的原因之一 - 它不會完成整個頁面,只有一些html之前和之後。
根據rails碎片緩存指南,我想我正在做的事情(http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching)。有沒有人有想過會發生什麼?
非常感謝您的幫助!
-Eric
傑夫,你搖滾......這已經很無奈了我。事實證明,我不僅需要移除緩存上的<%=,還需要移除渲染調用。看來我確實需要更多地瞭解erb渲染的複雜性(去年1月剛剛開始使用ruby/rails,所以我對這種語言非常陌生)。非常感謝 - 非常感謝! – ejlevin1 2011-06-15 04:50:58