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
@companies = 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])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With