轨道中的N + 1与活动记录的关系?

时间:2012-12-10 18:09:42

标签: ruby-on-rails activerecord select-n-plus-1

我有四个模特

  1. 报告
  2. 评论
  3. 用户
  4. 组=> has_many =>报告

    报告=> has_many =>评论

    评论=> Belongs_to =>用户

    当我想要展示一个小组时,我会做一些像

    这样的事情
     <%= @group.name %>
     <%= @group.reports.includes(:comments).each do |report| %>
          <%= report.name %>
          <% report.comments.each do |comment| %>
               <%= comment.name %>
               <%= comment.user.name %>
          <% end %>
     <% end %>
    

    在这种情况下解决N + 1查询问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

也许

@group.reports.includes(:comments => :user).each do |report|