Comment puis-je fusionner deux tableaux? Quelque chose comme ceci:
@movie = Movie.first()
@options = Movie.order("RANDOM()").first(3).merge(@movie)
Mais ça ne fonctionne pas.
Dans @options
j'ai besoin d'un tableau de quatre éléments comprend @movie
.
OriginalL'auteur Croaton | 2015-04-30
Comme ça?
Mais vous n'avez pas 2 tableaux.
Vous pourriez faire quelque chose comme:
Ouais, j'ai parlé trop vite, vérifier la mise à jour...
Merci! J'oublie toujours de "<<" 🙂
OriginalL'auteur Nick Veys
Il y a deux parties à cette question:
Comment fusionner deux tableaux"? Utilisez simplement le
+
méthode:Comment faire ce que vous voulez? (Qui, comme il s'avère, n'est pas de fusionner les deux tableaux). Parlons tout d'abord de décomposer le problème:
@movie
est une instance de votreMovie
modèle, que vous pouvez vérifier avec@movie.class.name
.@options
est unArray
, ce que vous pouvez vérifier avec@options.class.name
.Tout ce que vous devez savoir maintenant est de savoir comment ajouter un nouvel élément à un tableau (c'est à dire, ajouter votre
@movie
article à votre@options
tableau)Vous n'avez que l'utilisation de la double pelle:
c'est essentiellement le même que quelque chose comme:
OriginalL'auteur joshua.paling
@movie
n'est pas un tableau dans votre exemple, c'est juste une seule instance d'un film. Cela devrait résoudre votre problème:OriginalL'auteur spickermann
Bien, Si vous avez un élément de fusionner dans un tableau, vous pouvez utiliser
<<
:Ou si vous avez deux tableaux, et souhaitez doubles, alors faire usage de
+=
ou tout simplement+
en fonction de vos besoins à la mutabilité exigences:Ou si vous avez deux tableaux, et peut négliger les doublons, puis faire usage de
|=
ou tout simplement|
:OriginalL'auteur Ayman Hussain
De fusion (faire de l'union de) tableaux:
À la concaténation de tableaux:
Pour ajouter un élément dans un tableau:
[1, 2, 3] << 4 #=> [1, 2, 3, 4]
Mais il semble que vous n'avez pas des tableaux, mais les enregistrements actifs. Vous pourriez convertir en tableau avec
to_a
, mais vous pouvez également le faire directement:qui renvoie la matrice que vous voulez.
OriginalL'auteur Ana María Martínez Gómez