Rails:使用will_paginate显示每页10或20或50个结果如何?

pol*_*oco 5 ruby-on-rails will-paginate

又是我...

我需要使用will_paginate插件在我的帖子列表中显示10或20或50个结果数量的结果

你能帮我吗?

谢谢!

Sim*_*ide 18

看起来OP也问这里:http://railsforum.com/viewtopic.php?id = 33793并得到了更好的答案.

为了适应那里的最佳解决方案,这就是我喜欢的:

(在视图中)

<%= select_tag :per_page, options_for_select([10,20,50], params[:per_page].to_i),
       :onchange => "if(this.value){window.location='?per_page='+this.value;}" %>
Run Code Online (Sandbox Code Playgroud)

(在控制器中)

@per_page = params[:per_page] || Post.per_page || 20
@posts = Post.paginate( :per_page => @per_page, :page => params[:page])
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的示例 - 这对于我需要的Rails 3项目是正确的.虽然有一个提示......你可能想要将select_tag的部分改为"params [:per_page] .to_i"改为"@per_page",因为我们已经知道控制器的@per_page.即使没有per_page参数(例如索引操作),此更改也可确保在select标记中选择正确的值. (3认同)