我正在尝试使用Rails 3限制使用mislav's will paginate返回的元素数量。我目前正在使用:
# 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
这是分页,但不是每页8个项目。如果我修改代码不使用“where”它工作正常。但是,添加“where”或“scoped”似乎会导致问题。我有什么想法吗?
感谢。
答案 0 :(得分:14)
结束强制将每页限制移动到查询中。似乎是Rails 3版本的错误。因此,使用:
修复@companies = Company.where(...).paginate(:page => params[:page], :per_page => 8)
答案 1 :(得分:4)
@Kevin,如果您想确保per_page在各种查询中保持一致,您可以使用Company.per_page,例如
@companies = Company.where(...).paginate(:page => params[:page], :per_page => Company.per_page)
您也可以试试Kaminari gem,它与rails 3更好地集成:http://railscasts.com/episodes/254-pagination-with-kaminari
class Company < ActiveRecord::Base
paginates_per 7
end
@companies = Company.where(...).page(params[:page])
答案 2 :(得分:0)
您为什么使用'公司'而不是'公司'。这可能只是一个错字,但似乎是一个问题。