簡體   English   中英

行為作為可標記的緩存似乎不起作用

[英]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”數據庫列中。 執行SQL查詢,緩存不起作用

有什么想法如何使用此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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM