如何通过 user_id 和 author_id 将 Post 分配给用户?
how to assign Post to User through user_id and author_id?
我有 table 个用户。他们可以 post 在不同的用户配置文件中记录,所以对于每个 post 我有 user_id(在其配置文件中写了 post)和 autor_id(谁写了post)。
请你能帮我吗 - 应该将 posts 模型与用户连接两次的关系是什么?
现在我有这样的代码:
user.rb
has_many :posts, :dependent => :destroy
post.rb
belongs_to :user
has_one :author, :class_name => "User"
它不允许我调用 @post.author.name,因为我看到我将它错误地连接到用户模型。你能帮帮我吗?
你的联想是错误的..他们应该是这样的
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
现在你可以称它为
@post.author.name
belongs_to
和 has_one
之间有一个区别,那就是当 table 包含外键时,您应该定义 belongs_to。
最后我解决了问题:
user.rb
has_many :posts, :class_name => "Post", :foreign_key => "user_id"
has_many :records, :class_name => "Post", :foreign_key => "author_id"
post.rb
belongs_to :user, :class_name => "User", :foreign_key => 'user_id'
belongs_to :author, :class_name => "User", :foreign_key => 'author_id'
作者放记录,用户获取作者写的帖子。谢谢你,@test
我有 table 个用户。他们可以 post 在不同的用户配置文件中记录,所以对于每个 post 我有 user_id(在其配置文件中写了 post)和 autor_id(谁写了post)。 请你能帮我吗 - 应该将 posts 模型与用户连接两次的关系是什么? 现在我有这样的代码:
user.rb
has_many :posts, :dependent => :destroy
post.rb
belongs_to :user
has_one :author, :class_name => "User"
它不允许我调用 @post.author.name,因为我看到我将它错误地连接到用户模型。你能帮帮我吗?
你的联想是错误的..他们应该是这样的
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
现在你可以称它为
@post.author.name
belongs_to
和 has_one
之间有一个区别,那就是当 table 包含外键时,您应该定义 belongs_to。
最后我解决了问题:
user.rb
has_many :posts, :class_name => "Post", :foreign_key => "user_id"
has_many :records, :class_name => "Post", :foreign_key => "author_id"
post.rb
belongs_to :user, :class_name => "User", :foreign_key => 'user_id'
belongs_to :author, :class_name => "User", :foreign_key => 'author_id'
作者放记录,用户获取作者写的帖子。谢谢你,@test