[英]Acts-as-taggable-on caching does not seem to work
我使用的是可標記的 gem v.2.4.1,帶有rails v.3.2.13和ruby 1.9.3p392。 我剛剛將gem從v.2.2.1升級到v.2.4.1,並按照以下說明向數據庫添加了“ cached_tag_list”列。 保存/更新記錄時,該列似乎按預期更新,但是當我嘗試獲取標記的記錄時,我仍然可以看到正在執行SQL標記查詢(而不是獲取緩存的標記)。 這是我認為的代碼:
<% if !tape.tag_list.empty? %>
<% for tag in tape.tags %>
<span><%= tag.name %></span>
<% end %>
<% end %>
我的模型有以下一行:
acts_as_taggable_on :tags
這是newrelic的屏幕快照,顯示了正在執行的SQL查詢,即使這些記錄已將標簽字符串保存在“ cached_tag_list”數據庫列中。
有什么想法如何使用此gem啟用緩存嗎?
謝謝,亞歷克斯
在修復此錯誤之前,這是我已經實施的解決方法:
<% if tape.cached_tag_list != "" %>
<% for tag in tape.cached_tag_list.split(', ') %>
<span><%= tag %></span>
<% end %>
<% end %>
由於每次保存記錄時都會正確更新cached_tag_list列,因此我使用它來獲取每個記錄的標簽,而無需調用額外的SQL查詢,而只是調用一個。 由於cached_tag_list列存儲帶有逗號分隔標簽的字符串,因此我使用split()函數來獲取每個標簽。
如果這對其他人有用,我將與您分享。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.