我有一个带有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
答案 0 :(得分:0)
1,您在用户模型中有2次has_many :posts
,这是不正确的,请首先更改为has_many :own_posts, foreign_key: :user_id, class_name: "Post"
创建新的控制器,以将帖子添加到书签和route.rb
添加方法
def add
current_user.posts << Post.find(params[:post_id])
end
实际上可以在PostsController中添加它,但是无论如何都必须在routes.rb中添加新动作。与从书签中删除帖子相同