如何集成具有has_many关联的书签功能?

时间:2019-03-02 07:34:28

标签: ruby-on-rails

我有一个带有Devise for auth和Im的基本博客应用程序,我试图集成书签功能而不使用具有has_many关联的gem。我该怎么办?

我的User模型:

class User < ActiveRecord::Base
belongs_to :user
has_many :posts
has_many :posts, :through => :bookmarks
end

我的Post模型:

class Post < ActiveRecord::Base
    has_many :bookmarked_posts, through: :bookmarks, source: :post
end

我的Boomark模型:

class Bookmark < ActiveRecord::Base
    belongs_to :job
    belongs_to :user
end

1 个答案:

答案 0 :(得分:0)

1,您在用户模型中有2次has_many :posts,这是不正确的,请首先更改为has_many :own_posts, foreign_key: :user_id, class_name: "Post"

  1. 创建新的控制器,以将帖子添加到书签和route.rb

  2. 添加方法

def add
  current_user.posts << Post.find(params[:post_id])
end

实际上可以在PostsController中添加它,但是无论如何都必须在routes.rb中添加新动作。与从书签中删除帖子相同