用户作者很多文章,也有一个最喜欢的文章列表Rails

时间:2013-07-20 01:34:47

标签: ruby-on-rails

我有一个用户数据库,它与一个与文章数据库的has_many关系相关。

我希望用户能够拥有他不是作者的喜爱文章列表。我不确定如何实现这一点。我最初想到的是一个用户的数组,它包含了他最喜欢的帖子的所有id,但似乎有一种更直观的方式来做。

1 个答案:

答案 0 :(得分:1)

可能你喜欢数据库中的收藏夹以及作者关系。这样做的方法是添加另一个连接表,可能称为“favorite_articles”。

create_table :favorite_articles, :id => false do |t|
  t.integer :user_id
  t.integer :article_id
end

# also add foreign keys, assuming you're using a database that supports them

然后为其添加一个模型:属于用户和文章,并在用户和文章中使用has_many :through关联。但是,您必须将该关联命名为除文章之外的其他内容。

class User < ActiveRecord::Base
  has_many :favorite_articles
  has_many :favorites, :through => :favorite_articles, :class_name => "Article"
end

class FavoriteArticle < ActiveRecord::Base
  belongs_to :user
  belongs_to :article
end

class Article < ActiveRecord::Base
  has_many :favorite_articles
  has_many :users_who_favorited, :through => :favorite_articles, :class_name => "User"
end