Rails中的用户收藏夹系统

时间:2014-04-15 21:13:31

标签: ruby-on-rails ruby-on-rails-4

首先抱歉我的英文;

出于学习目的,我创建了一个带身份验证的博客(我正在使用Devise),现在我希望该用户能够收藏其他用户的帖子,这样当他们访问收藏的帖子页面时,他们会看到保存的帖子。如果有人可以给我一个教程链接或指导我,我很感激

1 个答案:

答案 0 :(得分:1)

要添加功能以使用户能够收藏其他用户的帖子,您需要创建与您可能已创建的用户和帖子模型的关联

class User < ActiveRecord::Base
  has_many :posts
  has_many :favorites, :dependent => :destroy
  has_many :favorite_posts, :through => :favorites, :source => :post
end

class Post < ActiveRecord::Base
  belongs_to :user
  has_many   :favorites, :dependent => :destroy
  has_many   :favorited, :through => :favorites, :source => :user
end

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

您可以使用这些模型添加必要的功能,并使用此关联创建帖子和收藏夹。

例如: myname = User.create(:name =&gt;'user333') yourname = user.create(:name =&gt;'user444')

mypost = myname.posts.create(:head =&gt;'Hello',:body =&gt;'post content') yourname.favorites.create(:post =&gt; mypost)

如果您这样做,此代码现在将提供user444的收藏帖子 myname.favorite_posts

有关于创建书签的教程,跟随其他用户并在网络上创建收藏夹等 http://doblock.com/articles/creating-an-extensible-user-favorites-system-in-rails http://12devs.co.uk/articles/writing-a-web-application-with-ruby-on-rails/

祝你好运!