5

又是我...

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

你能帮我吗?

谢谢!

4

3 回答 3

19

看起来 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])
于 2010-04-16T05:57:21.620 回答
1

设置类范围的默认值

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
于 2009-08-15T04:06:30.717 回答
1

这是我要做的

Class UsersController < ApplicationController
    def index
        @users = User.paginate(:all, :page => params[:page], :per_page => params[:number_of_records])
    end
end
于 2009-08-15T06:00:27.350 回答