2010-10-28 8 views
2

J'ai du mal à paginer en utilisant mongoid. Je suis en mesure d'appeler paginate sur mon objet de collection commeProblème de pagination Mongoid

@results = @collections.paginate :page => 1, :per_page => 10 

mais comment il doit être référencé dans la vue?
À mon avis j'ai rendu la collection partielle

<%= render :collection => @collections, :partial => collect.xml %> 
<%= will_paginate @results %> 

Dans la ligne ci-dessus j'obtiens l'erreur méthode non définie TOTAL_PAGES pour tableau.

Mais il n'y a pas d'erreur si je supprime l'appel will_paginate dans la vue et que toutes les collections sont affichées dans la vue sans pagination. Pls aide.

Je pense que je vais mal en appelant l'aide de pagination en vue. J'ai cherché pendant assez longtemps et n'ai pas trouvé un exemple qui incluait l'appel de pagination en vue de mongoïde. Pardonnez-moi si c'est une question stupide. Je suis nouveau à mongoid.

Répondre

4

Cette méthode appel

@results = @collections.paginate :page => 1, :per_page => 10 

renseignera @results avec un tableau de 10 articles de @collections. Vous n'avez pas du tout besoin d'utiliser will_paginate, utilisez simplement l'objet @results tel quel. Si vous rencontrez des problèmes avec l'affichage donnant plus de 10 résultats, déboguez le contrôleur et la vue pour vous assurer qu'il n'y a pas de problème entre votre tableau @results.

EDIT:

Aha, de sorte que le problème est dans l'affichage des liens de pagination sur la vue. Oui, pour cela, vous aurez besoin de la vue pour savoir des choses comme la page actuelle et le nombre total de pages disponibles, de sorte que vous pouvez calculer combien de liens sont nécessaires.

En retour, vos liens doivent indiquer au contrôleur quelle page est demandée, ce que vous pouvez obtenir avec les paramètres de requête GET. Les assistants sont probablement le meilleur moyen de garder la vue propre.

+0

Merci Andres, oui J'ai eu les 10 résultats affichés dans la vue. Mais mon problème est d'afficher les liens de pagination dans la vue. Nous avons donc besoin de construire une aide personnalisée pour afficher les liens de pagination à droite. J'ai besoin d'une telle chose en utilisant extjs – ljay

+0

J'ai mis à jour la réponse en fonction de votre commentaire, j'espère que c'est assez clair! –