0
votes

Méthode pour déplacer les tableaux dans la table des rails Activerecord

suppose un modèle fruit avec attributs nom , le prix , et poids et supposez trois tableaux: < Pré> xxx

existe une méthode qui crée un nouvel enregistrement dans des rails comprenant le i'th élément de chaque tableau ci-dessus?


1 commentaires

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.


3 Réponses :


1
votes

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 comme ci-dessous, xxx


2 commentaires

Au lieu de 3, vous pouvez également utiliser nom.length.times


@ts Yea, peu plus dynamique!



2
votes

juste hors de curiosité: xxx


2 commentaires

Vous pouvez simplement transmettre un tableau de hachage à fruit.create 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.



1
votes

Vous pouvez obtenir un tableau de hashes par: xxx

.zip fusionne les tableaux ensemble. hachage [] est un procédé de constructeur spécial pour les hachages qui prend une matrice de tableaux de paires de clé / de valeur.

Pour créer plusieurs enregistrements à une fois, vous pouvez simplement passer un tableau de hachage à la méthode de création: xxx


2 commentaires

Dans Ruby 2.1+, vous pouvez utiliser [: Nom,: prix,: Poids] .zip (a) .to_h à la place.


Ou même % i [nom de poids prix] .zip (a) .to_h pour réduire le bruit de la ligne encore plus.