Rails 3:CacheHelper,缓存块不会在生产环境中呈现

时间:2011-06-29 18:09:06

标签: ruby-on-rails development-environment production-environment

我希望有人可以帮助我,因为我正面临着关于Rails 3的这种奇怪的行为。

问题在于:

我开发了一个博客,其中每篇文章可能都有一个或多个标签。 我使用了一种经典方法,使用第三种模型为每篇文章分配标签:标签,使得文章及其标签之间的桥梁使用各自的ID。

然后,在我的文章的索引页面中,我有一个侧边栏显示所有标签。

到目前为止,一切都在开发环境中运行良好:所有标签都显示出来。但是......当我在生产环境中启动该站点时,根本不会显示任何标记,但它们会保存在生产数据库中。

以下是我在视图中用来显示标记的代码:

<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>

有没有人对这种奇怪的行为有所了解?

非常感谢您为我提供的所有帮助:)

此致 M. Millet

1 个答案:

答案 0 :(得分:0)

好的,所以我终于找到了问题。我不得不删除:

<% cache("all_tags") do %>

似乎缓存中包含的内容(使用缓存函数)不会在生产中呈现。但我不知道为什么......所以,即使我已经解决了我的问题,如果有人能解释为什么缓存块不能在生产环境中呈现,那将会很棒。

谢谢:)

祝你好运, Kulgar。