У меня есть пользовательская модель (не сопоставление каких-либо таблиц в базе данных). Эта пользовательская модель является результатом объединения многих других данных таблицы. Я хочу использовать kaminari для paginate это.Kaminari: разбиение на страницы для пользовательской модели
, например:
def index
@custom_models = find_all_items # result is an array
render
end
И тогда я постраничной эти пункты зрения:
= paginate @custom_models
Когда я запускаю это, я встречаю исключение:
неопределенный метод `total_pages' для массива: 0x007fb4dde63c70
Мой вопрос: как я могу использовать Kaminari для пользовательского файла модели.
@Edit я могу использовать Kaminari сейчас, просто использовать эту строку:
@custom_models = Kaminari.paginate_array(@custom_models)
.page(params[:page]).per(params[:per_page])
Но теперь я встречаю проблемы: потому что это пользовательская модель, я использую пользовательский запрос. Я использую raw sql query и paginate самостоятельно, используя ключевое слово offset
и limit
.
Например, я возвращаю 25 записей, а по умолчанию Kaminari отображает 25 записей на каждой странице, поэтому я могу видеть только 1 страницу. Я могу сделать запрос для возврата всех необходимых записей (например, 1000 записей), но я не знаю, как заставить Каминари понять это и показать мне достаточно страниц.
благодаря
Я пробовал свой вариант. но я встречаю исключение в файле вида с именем: 'undefined method 'total_pages' для #Array: 0x007fb4daca5288'. О разбиении на страницы, я разбиваю страницы на запрос самостоятельно (используя ключевое слово offset и limit). –
Если вы разбиваете на страницы в модели, то, вероятно, вам также нужно рассчитать количество страниц вручную. Пожалуйста, обновите свой вопрос более подробно, с точки зрения кода, на модели и уровне контроллера –
Я обновил свой вопрос. Взгляни, пожалуйста. спасибо –