Ruby on rails 在RubyonRails中使用相同的2个表的多个一对多关系?

Ruby on rails 在RubyonRails中使用相同的2个表的多个一对多关系?,ruby-on-rails,database,relationship,Ruby On Rails,Database,Relationship,我有一个包含2个表的数据库;用户和修订。修订与用户表有多个一对多关系,例如创建人、验证人、发布人(每个字段都是外键用户id) 如何在Rails模型中定义这种关系?类修订版“创建人”,:类名称=>“用户” 属于\u-to:verifier,:foreign\u-key=>“verified\u by”,:class\u-name=>“User” 属于发布者,:外部密钥=>“发布者”,:类名称=>“用户” 结束 类用户“created\u by”,:class\u name=>“Revision”

我有一个包含2个表的数据库;用户和修订。修订与用户表有多个一对多关系,例如创建人、验证人、发布人(每个字段都是外键用户id)

如何在Rails模型中定义这种关系?

类修订版class Revision < ActiveRecord::Base
  belongs_to :creator, :foreign_key => "created_by", :class_name => "User"
  belongs_to :verifier, :foreign_key => "verified_by", :class_name => "User"
  belongs_to :publisher, :foreign_key => "published_by", :class_name => "User"
end

class User < ActiveRecord::Base
  has_many :creations, :foreign_key => "created_by", :class_name => "Revision"
  has_many :verifications, :foreign_key => "verified_by",
    :class_name => "Revision"
  has_many :publications, :foreign_key => "published_by",
    :class_name => "Revision"
end
属于:创建者,:外部密钥=>“创建人”,:类名称=>“用户” 属于\u-to:verifier,:foreign\u-key=>“verified\u by”,:class\u-name=>“User” 属于发布者,:外部密钥=>“发布者”,:类名称=>“用户” 结束 类用户“created\u by”,:class\u name=>“Revision” 有多个:验证,:foreign\u key=>“验证人”, :class_name=>“修订版” 有很多:出版物,:foreign\u key=>“published\u by”, :class_name=>“修订版” 结束 使用这些模型:

User.first.creations    #=> [#<Revision>, #<Revision>, ...]
Revision.first.creator  #=>  #<User>
# ...etc., for verifier/verifications and publisher/publications.
User.first.creates#=>
Revision.first.creator#=>#
#…等,用于验证人/验证和出版商/出版物。
您可能应该将关联名称更改为应用程序中最有意义的名称。

类修订版“创建人”,:类名称=>“用户”
属于\u-to:verifier,:foreign\u-key=>“verified\u by”,:class\u-name=>“User”
属于发布者,:外部密钥=>“发布者”,:类名称=>“用户”
结束
类用户“created\u by”,:class\u name=>“Revision”
有多个:验证,:foreign\u key=>“验证人”,
:class_name=>“修订版”
有很多:出版物,:foreign\u key=>“published\u by”,
:class_name=>“修订版”
结束
使用这些模型:

User.first.creations    #=> [#<Revision>, #<Revision>, ...]
Revision.first.creator  #=>  #<User>
# ...etc., for verifier/verifications and publisher/publications.
User.first.creates#=>
Revision.first.creator#=>#
#…等,用于验证人/验证和出版商/出版物。

您可能应该将关联名称更改为应用程序中最有意义的名称。

我正在自己的问题中尝试此解决方案,但似乎无法使其正常工作。你能帮我一下吗?我正在我自己的问题上尝试这个解决方案,但我似乎无法让它发挥作用。你能帮我一下吗?