2009-05-07 9 views
2

Je souhaite afficher sur ma page des "astuces" qui changent toutes les 30 secondes. Les résultats de la méthode "find" dans les rails ne sont pas classés par ID. Il sera commandé par une autre colonne.Comment afficher la ligne suivante d'un ensemble dans Rails find

Quelle est la meilleure façon de récupérer la valeur "next". Existe-t-il un moyen d'obtenir le nombre de lignes dans le jeu de résultats, puis de trouver par l'identifiant de la ligne suivante?

Merci,

Tam

Répondre

2

avec utilisation trouver: offset => N,: limit => 1 et compter simplement sur N.

+0

Merci ... Bien que les autres solutions fonctionnent, j'ai aimé celui-ci le meilleur parce que dans ce cas je ne sais pas Il faut les chercher tous en même temps, car il pourrait y en avoir beaucoup à mettre en session. En outre, je les voulais dans un ordre spécifique par opposition à aléatoire. – Tam

+0

Model.first (: offset => N) devrait également fonctionner. – Magne

1

Vous pouvez tout simplement faire un appel ajax et obtenir une astuce aléatoire. Quelque chose comme

@tip = Tip.find(:first, :order => "RAND()") 
render :update do |page| 
    page.replace_html :tip_container, :partial => "tip" 
end 
1

Si vous avez déjà récupéré toutes les astuces dans un tableau que vous pouvez parcourir en utilisant cet index de tableaux, @results [1] .tip, @results [2] .tip, etc.

Questions connexes