【问题标题】:User Favorites System in RailsRails 中的用户收藏夹系统
【发布时间】:2014-04-16 06:17:05
【问题描述】:

首先对不起我的英语;

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

【问题讨论】:

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


    【解决方案1】:

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

    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 => 'user333') yourname = user.create (:name => 'user444')

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

    如果您这样做,此代码现在将给出 user444 最喜欢的帖子 我的名字.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/

    祝你好运!!

    【讨论】:

    • 我已经做了你告诉我的事,我已经创建了一个 fvorite 控制器 def create current_user.favorites.create(params[:post_id]) end 这是路由获取“收藏夹/创建”,我已经添加发布按钮
    • 这是我的观点 但是当单击添加按钮并转到收藏路径时,我收到此错误 undefined local variable or method `post_title'
    • 你的 Post 模型中是否定义了 post_title ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2023-03-20
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多