13

投稿を作成できるモデル ユーザーがいます

User
 has_many :posts
Post
 belongs_to :user

ただし、ユーザーが投稿をブックマークとして保存できるようにしたいと考えています。だから私は以下を追加しました:

Bookmark
 belongs_to :post
 belongs_to :user
User
 has_many :posts
 has_many :posts, :through => :bookmarks
Post
 belongs_to :user
 has_many :posts, :through => :bookmarks

@user.posts を実行するとあいまいになるため、これは正しくありません。それは、ユーザーが書いた投稿またはユーザーがブックマークした投稿を指しますか?

この問題をどのように回避しますか?

4

4 に答える 4

24

この問題をどのように回避しますか?

関連付けに一意の名前を付けます。それらに明確にアクセスできないということではなく、2番目のものが最初のものを破壊しているということです.

both を呼び出す代わりに、2 番目の関連付けpostsに使用bookmarked_postsします。

has_many :bookmarked_posts, through: :bookmarks, source: :posts
于 2013-09-09T02:52:46.740 に答える