我有一個模型,項目,其中有兩個belongs_to的關聯到同一個模式:Rails的ActiveRecord的:2個協會同型號
belongs_to :source_connection, class: Connection
belongs_to :destination_connection, class: Connection
但在另一邊,每個連接應該只有一個聯想到的項目。添加
has_one :project, foreign_key_id: source_connection_id
or
has_one :project, foreign_key_id: destination_connection_id
不會削減它,因爲連接本身並不知道它是否是源連接或目標連接。
很明顯,我設計這個關聯的方式存在一個缺陷,我只是好奇它的正確方法。值得一提的是,'Connection'有很多繼承類(SSHConnection,S3Connection等),所以將Connection類分成'Source'和'Destination'Connection模型會導致很多重複。
任何想法的歡迎。