开发者

Will Paginate Rails 3 Per Page

I am trying to limit the number of elements returned with mislav's will paginate with Rails 3. I am currently using:

# Gemfile
gem 'will_paginate', :git => 'git://github.com/mislav/will_paginate.git', :branch => 'rails3'

# company.rb
class Company < ActiveRecord::Base
  self.per_page = 8
end

# company_controller.rb
def index
  @companie开发者_运维百科s = Company.where(...).paginate(:page => params[:page])
end

This does pagination, but not 8 items per page. If I modify the code to not use the "where" it works fine. However, adding "where" or "scoped" seems to cause issues. Any ideas what I'm doing wrong?

Thanks.


Ended up being forced to move the per page limit into the query. Appears to be a bug with the Rails 3 version. Thus, fixed using:

@companies = Company.where(...).paginate(:page => params[:page], :per_page => 8)


@Kevin, if you want to be sure per_page is consistent across various queries you can use Company.per_page, eg.

@companies = Company.where(...).paginate(:page => params[:page], :per_page => Company.per_page)

You may also give a try to Kaminari gem which is much better integrated with rails 3: http://railscasts.com/episodes/254-pagination-with-kaminari

class Company < ActiveRecord::Base
  paginates_per 7
end

@companies = Company.where(...).page(params[:page])


Why are you using 'Companies' and not 'Company'. This might just be a typo here but it appears to be an issue.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜