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.
精彩评论