大周末,就不应该折腾代码啥的,遇到一个问题,没有思路,过来请教下:
我有一个导航的局部视图,再多个页面用到,而且是加载相同的数据,topics_nav.html.erb代码如下:
<div class="panel nodes" >
  <p>分类导航</p>
  <% if @sections.count > 0 %>
    <dl class="accordion" data-accordion>
      <% @sections.each do |section| %>
        <dd class="accordion-navigation">
          <a href="#section<%= section.id %>" class="first"><%= section.name %> <i>(<%= section.nodes_count %>)</i></a>
          <div id="section<%= section.id %>" class="content">
            <dl class="accordion">
              <% section.nodes.each do |node| %>
                <dd class="accordion-navigation">
                  <%= link_to node.name, topics_node_path(node_id: node.id) %>
                </dd>
              <% end %>
             </dl>
          </div>
        </dd>
      <% end %>
    </dl>
  <% else %>
    <i>还没有创建节点哦</i>
  <% end %>
</div>
使用gem 'cells', "3.9.1"把它进行组件化之后,
class NodeCell < Cell::Rails
    cache :topics_nav, :expires_in => 1.days
    def topics_nav
        @sections = Section.topics.includes(:nodes)
        render
    end
end
在用到的地方进行渲染<%= render_cell :node, :topics_nav %>。
现在问题来了,每次刷新,或者每次加载用到这个导航视图的时候,都会向数据库发起请求,但数据视没有变化的,如下:

我就想,它不用去请求数据库,直接渲染视图。。。。。。 有没有谁可以提供点思路? 或者,社区里曾经有类似的帖子?