suppose un modèle existe une méthode qui crée un nouvel enregistrement dans des rails comprenant le i'th élément de chaque tableau ci-dessus? p> p> fruit code> avec attributs nom code>, le prix code>, et poids code> et supposez trois tableaux: < Pré> xxx pré>
3 Réponses :
Il n'y a pas une telle méthode, mais vous itérez une boucle d'ajouter des nombres d'objets à l'intérieur fruit code> comme ci-dessous,
Au lieu de 3, vous pouvez également utiliser nom.length.times code>
@ts Yea, peu plus dynamique!
juste hors de curiosité:
Vous pouvez simplement transmettre un tableau de hachage à fruit.create code> au lieu de l'appeler sur chaque itération.
@max je n'ai aucune idée de la façon dont les rails / ar font leur magie, mais ok, merci.
Vous pouvez obtenir un tableau de hashes par: Pour créer plusieurs enregistrements à une fois, vous pouvez simplement passer un tableau de hachage à la méthode de création: p> .zip code> fusionne les tableaux ensemble. hachage [] code> est un procédé de constructeur spécial pour les hachages qui prend une matrice de tableaux de paires de clé / de valeur. p>
Dans Ruby 2.1+, vous pouvez utiliser [: Nom,: prix,: Poids] .zip (a) .to_h code> à la place.
Ou même % i [nom de poids prix] .zip (a) .to_h code> pour réduire le bruit de la ligne encore plus.
Comme toujours, la plus grande question est - pourquoi avez-vous besoin de le faire? Une telle configuration est plutôt inhabituelle et MGIHT suggère des problèmes de conception.