2015-07-13 2 views
0

J'ai une méthode qui va chercher les résultats en utilisant solr. par exemple.Comment faire à travers plusieurs onglets pagination en utilisant Kaminari Gem

def test 
    @result1 = Model1.search do 
     fulltext params[:search] 
     paginate page: params[:page], per_page: 12 
    end 
    @result2 = Model2.search do 
     fulltext params[:search] 
     paginate page: params[:page], per_page: 12 
    end 

end 

Maintenant j'ai 2 résultats et je l'affiche dans la page de test à travers 2 onglets.

Quand j'afficher du contenu via des onglets, les données correctement obtient population dans chaque onglet, mais j'ai un problème dans la pagination.

Lorsque je clique suppose que dire sur le numéro de la page 3 dans l'onglet result2 il affiche page3 de result2 mais quand je clique sur l'onglet result1 il me faut pour page3 de l'onglet result1. Où il devrait aller à la page1 quand je clique sur l'onglet result1.

<%= paginate @result1 ,:params => { :anchor => 'result1' }%> 

<%= paginate @result2 ,:params => { :anchor => 'result2' }%> 

Comment puis-je résoudre ce problème. J'utilise kaminari gem pour la pagination.

+0

vous pouvez utiliser le hachage params et passe d'identification unique, params => {: from_tab1 => « tab1 », : from_tab1 => "tab2"}. Ainsi, dans le contrôleur, vous pouvez l'utiliser pour identifier l'origine de l'onglet, puis le paginer et le mettre à jour en conséquence. – Milind

Répondre

0

Vous pouvez utiliser l'option param_name dans Kaminari comme si

<%= paginate @result1, param_name: 'result1' %> 

et de même pour @ result2. Ensuite, au lieu de params[:anchor], vous devez utiliser params[:result1] pour obtenir le numéro de page. Puisque vous allez utiliser différents noms de param pour @ result1 et @ result2, ils ne vont pas interférer les uns avec les autres