Rails将使用多个模型对表进行分页

时间:2014-12-21 22:17:52

标签: ruby-on-rails html-table admin will-paginate multiple-models

我正在为我的应用构建一个小管理页面,该页面将在一个表格中显示来自4个模型的数据。列是:俱乐部,用户,帖子,评论。

俱乐部有很多用户,用户有很多帖子和很多评论。 所以我的问题是我需要在admin_controller中为我的每个模型明确添加分页吗?现在的样子,我得到了表格顶部和底部的页面列表,我可以返回页面,但我的所有结果都显示在第一页(~9000个结果)。

在我的admin_controller中,我有

 @clubs = Club.all.paginate(page: params[:page], per_page: 50)

在我看来

<%= will_paginate @clubs %>
<table>
<% i = 0 %>
<tr class="new-admin-top-row">
  <td><%= "Club Location" %></td>
  <td>| <%= "Number of Signups "%> </td>
  <td>| <%= "Number of Posts By Users"%>    </td>
  <td>| <%="Number of Comments By Users"%> </td>
</tr>
    <%= @clubs.find_each do |club| %>
        <tr class="new-admin-row">
          <td class="new-admin-cell"><%= club.name %></td>
          <td class="new-admin-cell f"><%= @users_array[i] %></td>
          <td class="new-admin-cell s"><%= @posts_array[i] %></td>
          <td class="new-admin-cell"><%= @comments_array[i] %></td>
          <td class="new-admin-cell"><%= @elevates_array[i] %></td>
        <% i+=1 %>
      </tr>
  <% end %>
</table>
<%= will_paginate @clubs %>

1 个答案:

答案 0 :(得分:0)

find_each方法适用于ActiveRecord :: Relation对象,并批量提取1000条记录。所以这就是你最有可能遇到的问题。将其更改为each,它可能会解决您的问题。

您可以在此处详细了解find_eachhttp://apidock.com/rails/ActiveRecord/Batches/find_each