如何创建一个记录,当它取决于另一个记录

如何创建一个记录,当它取决于另一个记录

问题描述:

我有2个模型,他们每个人都依赖于另一个。如何创建一个记录,当它取决于另一个记录

class Company < ActiveRecord 
    belongs_to :user 
end 

class User < ActiveRecord 
    belongs_to :company 
end 

该公司有一个必需的user_id列。 用户有一个必需的company_id列。

如何创建公司和用户时,他们都相互依赖?

在你scenarion这种关系被称为many to many relationship,您可以创建中间表之间的这种所谓的users_companies既表

的外键欲了解更多详细信息,请参阅此链接Associations

例如像

class Company < ActiveRecord 
    has_many :users_companies, dependent: :destroy 
    has_many :users, through: users_companies 
end 

class User < ActiveRecord 
    has_many :users_companies, dependent: :destroy 
    has_many :companies, through: users_companies 
end 

class UsersCompany < ActiveRecord 
    belongs_to :user 
    belongs_to :company 

    # This model have two foreign key 
    user_id and company_id 
end 
+1

我认为连接表应该是companies_users,都是复数。按字母顺序排列。 http://guides.rubyonrails.org/association_basics.html#creating-join-tables-for-has_and_belongs_to_many-associations –

使用虚拟值伪造其中一个对象有效

company=Company.create(user_id: dummy) 
user=User.new 
user.company = company 
user.save 
company.update_attribute(user_id: user.id)