0
cars = Car.find(data).find_all{ |car| car.model == "Honda" }

これは Car のリストを返します。このリストを car.id のみを含むリストに変換したいと思います。Rubyのような方法でそれを行うにはどうすればよいですか?

4

3 に答える 3

2

あなたはこれを行うことができます:

car_ids = Car.find(data).find_all{ |car| car.model=="Honda" }.map{ |car| car.id }

基本的に、同じサイズの新しい配列を返します。これには、元の配列の各エントリを同じ順序array.map { |x| f(x) }で呼び出した結果が含まれます。f

于 2012-04-26T11:57:10.720 に答える
2

単に呼び出す:

cars = Car.find(data).find_all{ |car| car.model == "Honda" }.map{ |car| car.id }

http://corelib.rubyonrails.org/classes/Array.html#M000427

于 2012-04-26T11:58:19.453 に答える
1

私はそのようにします:

cars = Car.where(id: data, model: 'Honda').pluck(:id)

dataそれが車のIDの配列であると仮定します

于 2012-04-26T12:21:13.163 に答える