これはよくある問題であるに違いないので、Googleがこれ以上回答を出さなかったことに驚いています。私はいくつかの異なる種類のエンティティを持つRailsアプリに取り組んでいます。それらのエンティティは、異なるエンティティとの関係が必要です。例えば:
Address
:番地の詳細を格納するモデル(これは私の共有エンティティです)PersonContact
:自宅の電話、携帯電話、メールアドレスなどを含むモデル。このモデルには、アドレスが関連付けられている必要がありますDogContact
:明らかに、犬に連絡したい場合は、犬が住んでいる場所に行かなければなりません。
したがって、PersonContact
へDogContact
の外部キーが必要Address
です。たとえ、それらは実際にはの「所有」オブジェクトですがAddress
。これはaccepts_nested_attributes_for
、外部キーがAddress
正しく機能することを期待していることを除いて、問題ありません。
外部キーを保持するが、所有オブジェクトであり続けるための正しい戦略はAddress
何PersonContact
ですかDogContact
?