在某些情况下,在Rails中呈现错误的部分,可能是片段缓存问题

时间:2017-10-03 20:52:45

标签: ruby-on-rails ruby-on-rails-5 ruby-on-rails-5.1 fragment-caching

我有一个显示事件列表的模板

<tbody>
<%= render partial: 'event', collection: events, cached: true %>
</tbody>

部分event

<% cache event do %>
  <tr>
    <td>
      Something
    </td>
    <td>
      <%= render 'identifiable_link_with_tag', identifiable: event.identifiable %>
    </td>
  </tr>
<% end %>

部分identifiable_link_with_tag

<% cache identifiable do %>
    <span class="badge badge-info"><%= identifiable.type %></span> <%= link_to identifiable.identifier, identifiable %>
<% end %>

现在,奇怪的是接下来的事情。有时我会在事件视图中注意到,对于某些事件,会呈现另一个部分(identifiable)而不是identifiable_link_with_tag_identifiable。这似乎很奇怪,在列出25个事件的页面上,这只会发生在1或2或3(或0)个事件中。

简而言之,似乎有时会出现错误的可识别。我确实使用Rails片段缓存,因此这可能是一个因素。我错过了什么或者我遇到过Rails错误吗?这个问题很难在开发中重现,因此难以调试。

0 个答案:

没有答案