如何通过 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_tohas_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