Mongoid la pagination
J'ai essayé
@posts = Post.page(params[:page]).per_page(10)
et
@posts = Post.paginate(:page => 1, :per_page => 10)
mais aucune méthode fonctionne
undefined method `page' for Post:Class
undefined method `paginate' for Post:Class
Comment voulez-vous faire de la pagination avec mongoid?
- Simplement en utilisant une bibliothèque de pagination avec MongoDB. Vous pouvez utiliser: gem 'will_paginate" et gem "will_paginate_mongoid"
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser Kaminari https://github.com/amatsuda/kaminari
Cela fonctionne très bien pour moi:
desc(:_id)
est ajouté afin que les dernières publications pourraient être premier de la liste.gem 'mongoid-pagination'
à monGemfile
.Toujours à l'aide de will_paginate est également correct.
Ce fil a la même question: undefined method `pagination' pour le Tableau sur les Rails 3 avec mongoid
Le principal point à corriger l'erreur est d'ajouter cette ligne avant que le contrôleur d'appel de la pagination de la bibliothèque:
Il doit être ajouté au fichier de configuration par défaut si vous utilisez mongoid pour l'ensemble du projet.
Espère que les explications utiles.
Référence d'origine gem source: https://github.com/mislav/will_paginate/wiki/Backwards-incompatibility à "WillPaginate::Collection" section.
P/S: c'est juste un travail autour si votre requête n'est pas très grande. Si vous voulez améliorer les performances, nous allons essayer mongoid-pagination gem, personnalisé will_pagination gem ou d'une autre pagination gem qui a soutenu Mongoid comme kaminari.
Un peu en retard, mais pour quiconque recherche, j'ai trouvé 'will_paginate_mongoid'
https://github.com/lucasas/will_paginate_mongoid
Vraiment simple et vous permet de faire simplement
will_paginate
et que vous exécutezrails-4
,will_paginate_mongoid
din fonctionne pas de la dernière fois que j'ai vérifié. La solution est de placer mongoid_paginator.rb dansapp/models/concerns
, retirez l'extérieurmodule WillPaginateMongoid
et puisinclude MongoidPaginator
dans votre classe de modèle.betise, mais il a travaillé pour moi dans sinatra après j'ai ajouté besoin d'un mongoid-pagination'
app.rb
Utilisation suivantes gem.
Très utile.
https://github.com/lucasas/will_paginate_mongoid
De poster plusieurs années plus tard, au cas où quelqu'un d'autre fait face au même défi.
kaminari-mongoid
a été publié en 2016, et est actuellement maintenu.https://github.com/kaminari/kaminari-mongoid
Tous les bienfaits de Kaminiari pour Mongoid, y compris la manipulation appropriée de
Mongoid::Criteria
résultats, qui était probablement la cause de l'OP de l'erreur.