1
問題を簡略化するため、3つのモデルがあるとしましょう。 user
,flight
およびplane
である。私は彼らが飛行した各飛行機を何回飛ばしたかをユーザーに伝えたい。Rails - 複数の関係Find
I私は考えることができる最も簡単な解決策はそうのような便をループしている...これを達成するためにどのようにように完全に立ち往生しています...
flown_planes = {}
@user.flights.each do |f|
if flown_planes[f.plane.id]
flown_planes[f.plane.id] += 1
else
flown_planes[f.plane.id] = 1
end
end
は、私が何とか.find
と.count
を使用することができますこれを達成するには?上記よりはるかにクリーンな方法があると確信しています。以下の関係をご覧ください。
フライト
class Flight < ActiveRecord::Base
belongs_to :user
belongs_to :plane
end
飛行機
class Plane < ActiveRecord::Base
has_many :flights
end
ユーザー
class User < ActiveRecord::Base
has_many :flights
end
[OK]をありがとう - しかし、私は彼らからループする必要があり、ループ内でI飛行機オブジェクトを持っている必要があり、ユーザーがその飛行機を何回飛行したかのカウント - どのようにすればいいですか? –
投稿の更新を参照してください – davidb
あなたは私のために今日答えている華麗な - 二番目の質問:) –