Кто-нибудь нашел разумный способ переместить материал will_paginate в модель в рельсах 3? - PullRequest
0 голосов
/ 30 января 2011

Попытка использовать драгоценный камень will_paginate в rails 3, и я хочу перенести как можно большую часть этого бизнеса в модель, однако это кажется трудным, и я мало что видел в этом. Обычно вы делаете что-то вроде:

Resource.where(:foo => :bar).paginate(:page => params[:page], :per_page => 10)

Есть ли способ добавить params[:page] в модель? params там не доступен. Моим идеалом было бы как-то превратить это в scope.

1 Ответ

1 голос
/ 30 января 2011

Параметры доступны в методе модели, если метод принимает параметры в качестве параметра и параметры передаются в модель контроллером.Однако было бы лучше передать только параметры [: page], потому что модель должна ничего не знать о параметрах.Смотрите, например, этот пример .

Пагинация - это, в основном, не бизнес-логика, а способ представления данных.Следовательно, большая часть кода не принадлежит модели.Тем не менее, will_paginate предоставляет удобные методы для получения результатов 0-15, 15-30, ... модели, а выкачивание этих списков - просто способность модели activerecord, поэтому она там и принадлежит.

...