Будет ли Paginate Rails 3 на страницу - PullRequest
9 голосов
/ 22 июня 2010

Я пытаюсь ограничить количество элементов, возвращаемых с Миславом будет разбито на страницы с Rails 3. В настоящее время я использую:

# 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 элементовстр.Если я изменю код, чтобы не использовать «где», он работает нормально.Тем не менее, добавление «где» или «ограничено», кажется, вызывает проблемы.Есть идеи, что я делаю не так?

Спасибо.

Ответы [ 3 ]

14 голосов
/ 05 июля 2010

Завершено принудительным перемещением ограничения на страницу в запросе.Похоже, это ошибка в версии Rails 3.Таким образом, исправлено использование:

@companies = Company.where(...).paginate(:page => params[:page], :per_page => 8)
4 голосов
/ 21 января 2011

@ Кевин, если вы хотите быть уверенным, что per_page согласован для различных запросов, вы можете использовать Company.per_page, например.

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

Вы также можете попробовать гем Kaminari, который гораздо лучше интегрированс рельсами 3: http://railscasts.com/episodes/254-pagination-with-kaminari

class Company < ActiveRecord::Base
  paginates_per 7
end

@companies = Company.where(...).page(params[:page])
0 голосов
/ 06 июля 2010

Почему вы используете «Компании», а не «Компания». Это может быть просто опечатка здесь, но, похоже, это проблема.

...