2017-04-08 92 views
0

我有2個模型,他們每個人都依賴於另一個。如何創建一個記錄,當它取決於另一個記錄

class Company < ActiveRecord 
    belongs_to :user 
end 

class User < ActiveRecord 
    belongs_to :company 
end 

該公司有一個必需的user_id列。 用戶有一個必需的company_id列。

如何創建公司和用戶時,他們都相互依賴?

回答

1

在你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 –

0

使用虛擬值僞造其中一個對象有效

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