1

你好,我的逻辑有问题。在我的应用程序中,用户可以创建帖子并将它们添加到收藏夹。问题在于帖子和用户的关联。当用户创建帖子时 user_id 应用于帖子表。当其他用户或此用户将帖子添加到收藏夹时,我如何进行关联。

4

2 回答 2

2

您需要创建另一个将加入帖子和用户的表。您可以使用 2 列调用该表收藏夹:post_id 和 user_id

class Favorite < ActiveRecord::Base
  belongs_to :post
  belongs_to :user
end

class User < ActiveRecord::Base
  has_many :posts
  has_many :favorites
  has_many :favorite_posts, through: :favorites, source: :post
end

class Post < ActiveRecord::Base
  belongs_to :user
  has_many :favorites
  has_many :favorited_by_users, through: :favorites, source: :user
end
于 2013-02-01T13:37:09.777 回答
-1

您可以创建一个新的模型/表进行关联。我会为此采取多对多的关系。

表:书签

user_id | post_id

在这里描述了如何在 rails 工作中有许多 :through 关系:

http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

于 2013-02-01T13:39:26.110 回答