cars = Car.find(data).find_all{ |car| car.model == "Honda" }
これは Car のリストを返します。このリストを car.id のみを含むリストに変換したいと思います。Rubyのような方法でそれを行うにはどうすればよいですか?
cars = Car.find(data).find_all{ |car| car.model == "Honda" }
これは Car のリストを返します。このリストを car.id のみを含むリストに変換したいと思います。Rubyのような方法でそれを行うにはどうすればよいですか?
あなたはこれを行うことができます:
car_ids = Car.find(data).find_all{ |car| car.model=="Honda" }.map{ |car| car.id }
基本的に、同じサイズの新しい配列を返します。これには、元の配列の各エントリを同じ順序array.map { |x| f(x) }
で呼び出した結果が含まれます。f
単に呼び出す:
cars = Car.find(data).find_all{ |car| car.model == "Honda" }.map{ |car| car.id }
私はそのようにします:
cars = Car.where(id: data, model: 'Honda').pluck(:id)
data
それが車のIDの配列であると仮定します