2011-11-13 23 views
1

私は非常に新しいレールですので、私の限られた知識を許してください。複数の同じ関係の関係

私はパイロットがフライトをログに記録するためのWebアプリケーションを作成したい場合は、私は次のモデルを持っているかもしれません...しかし

class Flight < ActiveRecord::Base 
    belongs_to :plane 
    belongs_to :pilot 
end 

class Plane < ActiveRecord::Base 
    has_many :flights 
end 

class Pilot < ActiveRecord::Base 
    has_many :flights 
end 

、私は空港のクラスに関連していると私のフライトクラスを望んでいた場合には、二回、1つは起点空港、もう1つは目的地空港ですが、どうすればよいでしょうか?

はまた、どのように私は、空港側の関係を設定するのでしょうか?...この上

何かアドバイスをいただければ幸いです。

答えて

4

class_nameオプションとforeign_keyオプションを設定する必要があります。

belongs_to :origin_airport, :class_name => "Airport", :foreign_key => "origin_airport_id" 
belongs_to :destination_airport, :class_name => "Airport", :foreign_key => "destination_airport_id" 

明らかに、命名はあなた次第です。 docsに例があります。

+0

@ lucapetteの答えに少し追加するには、注意すべき点の1つは、activerecordのリレーションの最初の引数が属性の名前であることです。同じ名前+ "_id"の列とモデルがある場合は、foreign_keyとclassオプションをスキップできます。そうでない場合は、上のように指定します。 空港ではhas_manyと同じアプローチを使用してください。 –

関連する問題