我有一个显示两个Active Record查询的视图,其中一个我使用will_paginate。
所有这些都适用于will_paginate,但是如果我单击下一个或第2页,则第二个查询不再在视图上呈现。
我可能不了解will_paginate处理的流程,所以感谢任何帮助。特别是,为什么will_paginate会影响另一个不相关的查询在视图中显示?如果单击第一页,则第二个查询将再次显示在视图中。控制器返回两个查询,并在一个查询上有.paginate。
谢谢!
根据请求,这里是我要问的代码的摘要。我忘了提到其他查询也使用了will_paginate。因此,我发现了我的问题。我对两个分页使用相同的页面参数!我发现了一篇描述该怎么做的好文章: http://candidcode.com/2009/11/03/paginating-multiple-models-using-will_paginate-on-the-same-page/
并更新了我的代码,它确实有效。基本上,当你想在同一视图上的不同模型上使用两个will_paginates时,这是正确的代码。
控制器:
def index
@query1 = Post.somescope.paginate(:page => params[:query1_page], :per_page => 50)
@query2 = Post.someotherscope.paginate(:page => params[:query2_page], :per_page => 20)
end
查看:
<ul class="list-unstyled">
<li>
<%= will_paginate @query1, :param_name => 'query1_page' %>
</li>
<% @query1.each do |q1| %>
<li>...</li>
<% end %>
</ul>
<ul class="list-unstyled">
<li>
<%= will_paginate @query2, :param_name => 'query2_page' %>
</li>
<% @query2.each do |q2| %>
<li>...</li>
<% end %>
</ul>