Ruby on rails Rails-显示所有项目的分页gem
我正在使用分页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
<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这两种仍然不起作用-我已经尝试了这两种更改,但仍然没有区别:非常抱歉,顶部的错误代码将改变我所拥有的!