Rails 3: CacheHelper, кэшированный блок не отображается в производственной среде - PullRequest
0 голосов
/ 29 июня 2011

Я надеюсь, что кто-то может мне помочь, потому что я сталкиваюсь с таким странным поведением в отношении Rails 3.

Вот проблема:

Я разработал блог, в котором каждая статья можетесть один или несколько тегов.Я использовал классический метод для присвоения тегов каждой статье, используя третью модель: тегирование, которое устанавливает мост между статьей и ее тегами, назначая их соответствующие идентификаторы.

Затем на главной странице моих статей у меня есть боковая панель, показывающая все теги.

Пока все хорошо работает в среде разработки: все теги отображаются.Но ... Когда я запускаю сайт в производственной среде, теги вообще не появляются, но они сохраняются в производственной базе данных.

Вот код, который я использую в своем представлении, чтобы показать теги:

<ul id="tags">
<% cache("all_tags") do %>
    <% for tag in Tag.find(:all, :order => "name") %>
        <li><%= link_to "#{tag.name}", tag_path(tag) %></li>
    <% end %>
<% end %>
</ul>

Также я попытался просто поставить что-то вроде

<%= Tag.all %>

И этокажется, дает странный результат для каждого тега, сохраненного в базе данных:

#<Tag:some_alpha_numeric_caracters>

Кто-нибудь имеет представление об этом странном поведении?

Большое спасибо за всю вашу помощь, которую вы можете оказать мне:)

С уважением, М. Милле

1 Ответ

0 голосов
/ 01 июля 2011

Хорошо, так что я наконец нашел проблему. Мне пришлось просто удалить:

<% cache("all_tags") do %>

Кажется, что то, что содержится в кеше (используется функция кеша), не отображается в рабочей среде. Но я не знаю почему .. Поэтому, даже если бы я решил мою проблему, было бы здорово, если бы кто-нибудь мог объяснить мне, почему блок кэша не рендерится в производственной среде.

Спасибо:)

С уважением, Kulgar.

...