Ответ 1
Вы должны использовать Kaminari https://github.com/amatsuda/kaminari
Я пробовал
@posts = Post.page(params[:page]).per_page(10)
и
@posts = Post.paginate(:page => 1, :per_page => 10)
но ни один из методов не работает
undefined method `page' for Post:Class
undefined method `paginate' for Post:Class
Как вы делаете разбивку на страницы с мангоидом?
Вы должны использовать Kaminari https://github.com/amatsuda/kaminari
Это отлично работает для меня:
@posts = Post.paginate(:page => 1, :limit => 10).desc(:_id)
desc(:_id)
добавляется так, что первые сообщения могут быть перечислены первыми.
По-прежнему использовать will_paginate также хорошо.
Этот поток имеет такую же проблему: undefined метод` paginate 'для Array on Rails 3 с mongoid
Главное, чтобы исправить ошибку - добавить эту строку до того, как контроллер вызовет библиотеку paginate:
require 'will_paginate/array'
Он должен быть добавлен в файл конфигурации по умолчанию, если вы используете mongoid для всего проекта.
Надеемся на полезное объяснение.
Ссылка на источник источника происхождения: https://github.com/mislav/will_paginate/wiki/Backwards-incompatibility в разделе "WillPaginate:: Collection".
P/S: это просто работа, если ваш запрос не очень большой. Если вам нужна более высокая производительность, попробуйте драгоценный камень с мангией, custom will_pagination gem или другой драгоценный камень, который поддерживает Mongoid, например kaminari.
Немного поздно, но для кого-то другого, я нашел 'will_paginate_mongoid'
https://github.com/lucasas/will_paginate_mongoid
Действительно прямо вперед и позволяет просто делать
collection.skip(20).limit(10)
глупая вещь, но она работала для меня в синатре после того, как я добавил, требую "mongoid-pagination" к app.rb
Используйте следующий камень.
Очень полезно.
Проводя несколько лет спустя, если кто-то сталкивается с тем же вызовом.
kaminari-mongoid
был выпущен в 2016 году и в настоящее время поддерживается.
https://github.com/kaminari/kaminari-mongoid
Все доброта Каминиари для Mongoid, включая соответствующую обработку результатов Mongoid::Criteria
, что, возможно, является причиной ошибки OP.