Кэширование Acts-as-taggable-on не работает

Я использую GeForce-as-taggable-on gem v.2.4.1 с rails v.3.2.13 и ruby ​​1.9.3p392. Я только что обновил гем с 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-запросы выполнены, кеширование не работает

Любые идеи, как включить кэширование с этим драгоценным камнем?

Спасибо Алекс

1 ответ

Пока эта ошибка не исправлена, вот обходной путь, который я реализовал:

    <% 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(), чтобы получить каждый из них.

Я делюсь этим на случай, если это пригодится кому-то еще..

Другие вопросы по тегам