Frage

Gibt es eine gute Möglichkeit, alle ein bestimmtes Attribut aus einer Beziehung / Sammlung abzurufen? Zum Beispiel möchte ich eine Liste aller Namen eines Autos Person. Natürlich kann ich nicht tun, wie folgt vor:

Person.Cars.Name (n)

..., aber etwas in der Natur existieren in Ruby (oder gibt es eine Active Helfer-Methode), die die Griffe? Offensichtlich konnte ich über alle Autos durchlaufen und auf ein Array anhängen, aber ich möchte etwas ein bisschen sauberer. Irgendwelche Ideen?

Best.

War es hilfreich?

Lösung

Wenn cars eine Vereinigung eines person ist, und name eine Eigenschaft eines car, dann können Sie wie folgt vor:

# person = Person.find(conditions)
person.cars.collect { |car| car.name }

oder auch (dank ActiveSupport und / oder Ruby 1.9):

person.cars.collect(&:name)

Update: diese in folgenden Orten dokumentiert ist:

Update 2: ein Beispiel, das die Formatierung gilt:

person.cars.collect { |car| "(#{car.name})" }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top