【发布时间】:2012-04-28 20:38:16
【问题描述】:
又是我……
我需要使用 will_paginate 插件在我的帖子列表中显示 10 或 20 或 50 个结果,并在我的帖子列表中选择选项
你能帮帮我吗?
谢谢!
【问题讨论】:
标签: ruby-on-rails will-paginate
又是我……
我需要使用 will_paginate 插件在我的帖子列表中显示 10 或 20 或 50 个结果,并在我的帖子列表中选择选项
你能帮帮我吗?
谢谢!
【问题讨论】:
标签: ruby-on-rails will-paginate
看起来 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;}" %>
(在控制器中)
@per_page = params[:per_page] || Post.per_page || 20
@posts = Post.paginate( :per_page => @per_page, :page => params[:page])
【讨论】:
设置类范围的默认值
class Post < ActiveRecord::Base
def self.per_page
25
end
end
或者在逐个查询的基础上在您的通话中使用 per_page
class Post <ActiveRecord::Base
def self.posts_by_paginate
paginate(:all, :per_page => 25, :conditions => ["published = ?", true])
end
end
【讨论】:
这就是我要做的事情
Class UsersController < ApplicationController
def index
@users = User.paginate(:all, :page => params[:page], :per_page => params[:number_of_records])
end
end
【讨论】: