ここまで構造化されているなら、何も考える必要がないと思いますが・・・
Ruby
1# ユーザー
2class User
3 has_many :microposts
4 has_many :comments
5end
6
7# 投稿記事
8class Micropost
9 belongs_to :user
10 has_many :comments
11end
12
13# コメント
14class Comment
15 belongs_to :micropost
16 belongs_to :user
17end
構造のコメントのところにある、user_idに何のユーザーを格納するのかがよくわかりません。
多分、これが混乱の元なのではないでしょうか?
それとも、投稿記事にコメントがぶら下がるのではなく、投稿者にコメントが直接ぶら下がるのでしょうか?
だとしたら、こんな感じになるでしょう。
Ruby
1# ユーザー
2class User
3 has_many :microposts
4 has_many :post_comments, classname: Comment, source: author_id # 表で示されているuser_id
5 has_many :posted_comments, classname: Comment, source: target_user_id # 表で示されているuser_id(コメントしたユーザーのID)
6end
7
8# 投稿記事
9class Micropost
10 belongs_to :user
11end
12
13# コメント
14class Comment
15 belongs_to :author, classname: User, foreign_key: author_id # 表で示されているuser_id
16 belongs_to :target_user, classname: User, foreign_key: target_user_id # 表で示されているuser_id(コメントしたユーザーのID)
17end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/02 12:54
2015/12/02 12:59
2015/12/05 07:51