Ruby on rails 通过关联获取所有者

Ruby on rails 通过关联获取所有者,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有这样一类公司: class Company < ActiveRecord::Base belongs_to :owner, class_name: 'User' has_many :users, :dependent => :destroy after_create :set_owner def set_owner owner.update_attributes(company_id: id, role_id: 0) end 然而,现在我想在新公司

我有这样一类公司:

class Company < ActiveRecord::Base
  belongs_to :owner, class_name: 'User'
  has_many :users, :dependent => :destroy
  after_create :set_owner

  def set_owner
    owner.update_attributes(company_id: id, role_id: 0)
  end
然而,现在我想在新公司的初始化过程中获得所有者的姓名

如果我在控制台中执行此操作:

u = User.new(:name => 'My Name', :email => 'test@mail.com')
c = u.build_company(:name => 'my company')
c.owner
 => nil
c.users.count
 => 0

我该怎么做?我想获得在初始化阶段创建公司的用户(以便能够获得用户名)。

您可以通过添加
的逆项来解决此问题,这样构建的实例将知道该关系

class User < ActiveRecord::Base
  has_one :company, foreign_key: :owner_id, inverse_of: :owner
end
class用户
u = User.new(:name => 'My Name', :email => 'test@mail.com')
c = u.build_company(:name => 'my company')
c.owner
 => nil
c.users.count
 => 0
class User < ActiveRecord::Base
  has_one :company, foreign_key: :owner_id, inverse_of: :owner
end