私はSO about Rails関連付けに私の質問に似ているいくつかの質問を見つけましたが、私の人生では私は方法を理解することができないようです使用する belongs_to
複数のモデル。
これがtable structureです:
User
id
Post
id
user_id #foreign key; a post belongs to a User aka "Who created this post"
Comment
id
user_id #foreign key; a comment belongs to a User aka "Who made this comment"
post_id #foreign key; a comment belongs to a Post aka "What post this comment is for"
そしてassociations:
User
has_many :posts
has_many :comments
Post
belongs_to :user
has_many :comments
Comment
belongs_to :user
belongs_to :post
これは正しいアプローチですか?
はい、それが正しいアプローチです。
常に「最良の」アプローチとは限りませんが、Railsは Polymorphic belongs_to Association と呼ばれるものを提供します。これにより、xxx_id列が次の理由でデータベースに外部キーを定義できなくなります考えられる多くのテーブルの1つでidを参照する一方で、別の列はそのテーブルのモデルの名前を指定しますが、Railsでの関係をより明示的にします。また、モデルが所属するのではなく、他のモデルの1つにのみ所属するように制限します追加のdbマジックなしで複数の外部キーの設定を使用すると発生するので、1つ以上に。