2010-09-07 4 views
0

Dans les rails, vous pouvez utiliser .each do || faire une boucle sur les résultats renvoyés d'une requête. Mais que faire si une seule ligne est retournée? ou vous avez la possibilité de 0, 1 ou plusieurs? comment gérez-vous ces scénarios sans lancer une erreur?rails gérant des objets retournés simples et multiples

Cette situation en particulier est celui où j'accepte les attributs imbriqués suivant le blog de railcast ryan (http://railscasts.com/episodes/196-nested-model-form-part-1)

je peux avoir 1 ou plusieurs éléments imbriqués retournés que je dois ensuite faire une boucle à travers et écrire une forme XML.

Répondre

1

Lorsque vous parcourez un ensemble de résultats avec #each, vous n'avez pas besoin de vous soucier du nombre de résultats renvoyés. Si zéro, il n'y aura pas d'éléments dans votre tableau pour passer à la boucle; si un, un seul. Si plus, alors chacun est passé à la boucle. Dans chaque cas, tant que vous ne faites que boucler sur un tableau, peu importe si le tableau est vide, ou s'il contient un millier d'éléments, le même code de boucle s'exécutera sans erreur.

Par exemple, je peux boucler sur des tableaux avec différents nombres d'éléments sans aucun problème:

ree-1.8.7-2010.02 > [].each {|e| puts e } 
=> [] 
ree-1.8.7-2010.02 > [1].each {|e| puts e } 
1 
=> [1] 
ree-1.8.7-2010.02 > [1,2,3].each {|e| puts e } 
1 
2 
3 
=> [1, 2, 3] 
Questions connexes