2017-07-01 3 views
0

私はテーブルcontainersportsのデータベースを持っています。Rails - 同じテーブルを指す列

containersテーブルには、両方ともportsテーブルを指す2つの列pol_idpod_idがあります。 portsテーブルのカラムはidです。

移行中にbelongs_to/referencesを使用しようとしましたが、そのような柔軟性はありません。

また、私はこのためにモデルを構成するのに困惑しています。外部キーをカスタマイズするには、移行を作成するときに

+0

コンテナとポートモデルのコードを表示 –

+0

belongs_toの関連付けにforeign_keyを指定したいと思います。 – Mathiou

+0

あなたのモデル構成には良い答えがあります:https://stackoverflow.com/questions/25047920/rails-belongs-to-with-custom-column-name – Mathiou

答えて

0

あなたはforeign_keyオプションを使用することができます。

class Container 
    belongs_to :pol, class_name: "Port" 
end 

あなたを:あなたはどのようなクラスの関連ポイントにはActiveRecordを伝える必要があり、あなたのモデルでは

t.references(:pol, foreign_key: { to_table: :ports }) 

を逆関連付けを作成するときにも外部キーを提供する必要があります。

class Port 
    has_many :containers_as_pol, class_name: "Container", foreign_key: "pol_id" 
end 
+0

マイグレーション中のbelongs_toは参照用のエイリアスです同じことが当てはまります。 – max

関連する問題