Ruby on rails Rails-显示所有项目的分页gem

Ruby on rails Rails-显示所有项目的分页gem,ruby-on-rails,pagination,gem,has-many,Ruby On Rails,Pagination,Gem,Has Many,我正在使用分页gem对客户订单进行分页。我必须通过数据库使用关系显示订单: <table class="order-items"> <th>Date</th> <th>Order No.</th> <th>View Order</th> <% @customer.orders.each do |order| %> <tr> <td><%= orde

我正在使用分页gem对客户订单进行分页。我必须通过数据库使用关系显示订单:

<table class="order-items">
<th>Date</th>
<th>Order No.</th>
<th>View Order</th>
<% @customer.orders.each do |order| %>
    <tr>
        <td><%= order.created_at.strftime("%d %b. %Y") %></td>
        <td><%= order.id %></td>
        <td><%= link_to 'Show',  "../orders/#{order.id}" %></td>
    </tr>
<% end %>   
</table>

<p><%= will_paginate @orders %></p>
我已经为这个客户创建了6个订单来测试它。我遇到的问题是分页页面正确地显示在底部(2页),但所有6个顺序仍显示在列表中,并且两个分页页面仍显示所有6个顺序


我已经设法使分页对所有其他页面都能正常工作,所以我假设这是因为我在其中有order.line_items.each结构-这就是为什么它显示所有6个。但我不知道如何解决这个问题!任何帮助都将不胜感激,谢谢

您应该在每个语句之前添加视图中的下一行

    <%= will_paginate @orders %>

试试这个

在控制器中:

  @customer = Customer.find(params[:id])
  @order = @customer.orders
  @orders = @order.paginate page: params[:page], order: 'title',
  per_page: 5
 @customer = Customer.find(params[:id])
 @order_items = @customer.orders.paginate(:page => params[:page], :per_page => 5)
鉴于:

<table class="order-items">
<th>Date</th>
<th>Order No.</th>
<th>View Order</th>

<%= will_paginate @order_items %>

<% @order_items.each do |order| %>
<tr>
    <td><%= order.created_at.strftime("%d %b. %Y") %></td>
    <td><%= order.id %></td>
    <td><%= link_to 'Show',  "../orders/#{order.id}" %></td>
</tr>
<% end %>   
</table>

日期
订单号。
视图顺序

我建议您使用看起来更干净的方法来做和实现事情

在控制器中

@orders = Kaminari.paginate_array(Customer.find(params[:id]).orders).page(params[:page])
在模型中,指定所需的每页

paginates_per 10
在你看来

<% @orders.each do |order| %>
<tr>
    <td><%= order.created_at.strftime("%d %b. %Y") %></td>
    <td><%= order.id %></td>
    <td><%= link_to 'Show',  "../orders/#{order.id}" %></td>
</tr>
<% end %>

<%= paginate @orders %>


我希望这能有所帮助

对不起,在什么声明之前?感谢@order.line\u items.eachI认为您应该使用@orders.line\u items.eacht这两种仍然不起作用-我已经尝试了这两种更改,但仍然没有区别:非常抱歉,顶部的错误代码将改变我所拥有的!