2011-06-09 4 views
4

J'ai le code suivant qui me donne un tas d'emplacements et un index pour chaque emplacement.compteur persistant dans Ruby/Rails pour chaque

<%= paginate @locations %> 

<% @locations.each_with_index do |location, index| %> 
    <h1><%= index + 1 %></h1> 
    <h2><%= location.name %></h2> 
<% end %> 

Tout fonctionne très bien, je reçois tous les éléments dans le bon ordre avec l'index droit (palais as le plus de visites, puis bar, etc.):

  • 1 Palais
  • 2 bar
  • 3 Cinéma
  • 4 restaurant
  • 5 Ballon

J'utilise Kaminari pour et si je pagination Klick sur la deuxième page pour afficher les 5 prochains endroits, l'indice recommence à 1, mais il devrait me donner 6.

  • page suivante (devrait continuer l'indice avec 6)
  • 1 Arena (devrait être 6)
  • 2 Stadion (devrait être 7)
  • et ainsi de suite ...

alors, comment puis-je obtenir un compteur persistant/index WHIC h continue à la page suivante?

Merci à l'avance

Mise à jour

je suis venu avec ce qui suit, fonctionne très bien jusqu'à présent:

<% if params[:page].nil? || params[:page] == "0" || params[:page] == "1" %> 
    <% x = 0 %> 
<% else %> 
    <% page = params[:page].to_i - 1 %> 
    <% x = page * 10 %> 
<% end %> 

<% @locations.each_with_index do |location, index| %> 
    <%= index + x + 1 %> 
    ... 
+0

j'ai enlevé ma réponse. – sawa

+0

Pourriez-vous utiliser l'identifiant de l'enregistrement? '

<% = location.id%>

' –

+1

aucune garantie que l'ID sera consécutive – DGM

Répondre

1

each_with_index est une méthode rubis ordinaire (Enumerable je pense) que doesn Je ne sais rien de la structure de pagination. Vous devrez peut-être fournir un calcul supplémentaire, à moins que quelque chose Kaminari offre (je ne l'ai pas encore utiliser Kaminari)

Si cela will_paginate, je ferais quelque chose comme ça, et il serait peut-être travailler pour vous aussi:

<h1><%= index + 1 + ((params[:page] || 0) * @items_per_page) %></h1> 

(vous devez vous @items_per_page définir)

Questions connexes