2016-09-29 11 views
1

belongs_toを同じフィールドに2回宣言することはできますか?例えばRails:belongs_to同じフィールドに2回

:このように

class Notice < ApplicationRecord 
    belongs_to :avia, foreign_key: 'ticket_id', class_name: 'AviaTicket' 
    belongs_to :bus, foreign_key: 'ticket_id', class_name: 'BusTicket' 
end 

、私はさまざまなモデルのために二回ticket_idを使用しています。 belongs_to側では動作しませんが、反対側(AviaTicketBusTicket)で正常に動作します。

答えて

0

申し訳ありませんが、解決済みです!答えはYesです。 を/models dirに使用したため、動作しません。そして、私は::

を忘れてしまったし、右の私のモジュールで宣言します。あなたがレールにbelongs_toを行うと

//app/models/notice/notice.rb 

class Notice::Notice < ApplicationRecord 
. 
. 
    belongs_to :bus, foreign_key: 'ticket_id', class_name: '::BusTicket' 
. 
. 
end 
0

は、あなたがモデルは、それが属しているテーブルのidを持つ外部キーを持っていることを意味していますに。あなたは好きなだけbelongs_toの関係を持つことが許されていますが、それらはすべて異なるforeign_keyを持つ必要があります。あなたの外部キーはあなたが参照しているテーブルに固有でなければなりません。たとえば、AviaTicketの外部キーはforeign_key: 'avia_ticket_id'で、BusTicketと同じです。外部キーはそのテーブルに固有でなければなりません。対応するデータを検索しようとしています。

関連する問題