Activerecord-Array mit Objekten in kommagetrennte Zeichenfolge
Sagen, ich habe ein Modell mit der Bezeichnung "Obst", und eine Abfrage gibt alle eindeutigen Namen Obst zu @Frucht:
!ruby/object:Obst-Attribute:
fruit_name: orange attributes_cache: {}!ruby/object:Obst-Attribute:
fruit_name: apple attributes_cache: {}!ruby/object:Obst-Attribute:
fruit_name: Pfirsich attributes_cache: {}
Verstehe ich (einigermaßen) @Frucht ist ein Array aus Arrays (activerecord-Objekte). Ich versuche, die zurückgegebenen Namen Obst in eine durch Kommas getrennte Zeichenfolge, wie: "orange,Apfel,Pfirsich".
Wenn das array aus strings oder zahlen (anstelle von arrays), ich weiß, ich könnte mit map w/.join (','), dies zu tun. Ich habe Probleme mit der extra-syntax benötigt, um beziehen sich auf die arrays im array (der 'fruit_name' Felder des arrays bei jedem array-index).
Ich weiß, das würde funktionieren, nur nicht sicher, wie dies zu tun als eine dynamische iteration:
@fruit_string = @Frucht[0].fruit_name + ',' + @Obst[1].fruit_name + ',' + @Obst[2].fruit_name
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nun, wenn ein block besteht aus einem Aufruf der Methode ohne Parameter, und für die etwas komplizierte1 - Gründen, Sie können es schreiben wie
1 ist. Der unäre & - operator dreht procs in Blöcke und die Blöcke in procct. Wenn der operand ist nicht, dann ist es erste Anrufe to_proc, wenn man es kann. (Und ja, das Symbol hat eine to_proc.) Es ist sogar komplizierter als das, aber das ist der Grund, warum es einen schönen markigen Ergänzung zur Karte.
Oder verwenden Sie den proc kurzer hand: