8

関係/コレクションから特定の属性をすべて取得する良い方法はありますか?たとえば、人の車のすべての名前のリストが必要です。明らかに、私は次のことを行うことはできません。

Person.Cars.Name(s)

...しかし、その性質の何かがそれを処理するruby(またはActiveRecordヘルパーメソッドがあります)に存在しますか?もちろん、すべての車を繰り返し処理して配列に追加することもできますが、もう少しクリーンなものが必要です。何か案は?

一番。

4

2 に答える 2

11

carsがの関連付けでありpersonnameのプロパティである場合car、次の操作を実行できます。

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

ActiveSupportまたは( Ruby 1.9のおかげで):

person.cars.collect(&:name)

更新:これは次の場所に文書化されています:

アップデート2:フォーマットを適用する例:

person.cars.collect { |car| "(#{car.name})" }
于 2009-07-05T23:21:00.907 に答える