will_paginate - 第2页及以后未显示的其他查询

时间:2014-05-20 13:27:08

标签: ruby-on-rails

我有一个显示两个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>

0 个答案:

没有答案