2017-04-08 3 views
0

Ich habe 2 Modelle, die jeweils von einem anderen abhängen.So erstellen Sie einen Datensatz, wenn es von einem anderen Datensatz abhängt

class Company < ActiveRecord 
    belongs_to :user 
end 

class User < ActiveRecord 
    belongs_to :company 
end 

Das Unternehmen verfügt über eine erforderliche Spalte user_id. Der Benutzer verfügt über die erforderliche Spalte company_id.

Wie kann ich eine Firma und einen Benutzer erstellen, wenn beide voneinander abhängig sind?

Antwort

1

In Ihrer scenarion diese Beziehung many to many relationship genannt wird, können Sie Mitte Tabelle erstellen zwischen diesem users_companies mit Fremdschlüssel der beide Tabelle namens

Weitere Details entnehmen Sie bitte diesen Link Associations

Wie Beispiel

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

Ich denke, die Join-Tabelle sollte companies_users, beide Plural sein. In alphabetischer Reihenfolge. http://guides.rubyonrails.org/association_basics.html#creating-join-tables-for-has_and_belongs_to_many-associations –

0

Verwenden Sie einen Dummy-Wert, um eines der Objekte zu fälschen.

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