2017-04-08 16 views
0

2つのモデルがあり、それぞれが別のモデルに依存しています。別のレコードに依存してレコードを作成する方法

class Company < ActiveRecord 
    belongs_to :user 
end 

class User < ActiveRecord 
    belongs_to :company 
end 

会社には必須のuser_id列があります。 ユーザーには必須のcompany_id列があります。

企業とユーザーの両方が互いに依存している場合、どのように作成できますか?この関係がmany to many relationshipと呼ばれ、あなたのscenarionで

答えて

1

、あなたはこれが例のように、このリンクAssociations

を参照してください詳細については、両方のテーブル

の外部キーでusers_companiesと呼ば間の真ん中のテーブルを作成することができます

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

ダミー値を使用してオブジェクトの1つを偽装することが有効です

company=Company.create(user_id: dummy) 
user=User.new 
user.company = company 
user.save 
company.update_attribute(user_id: user.id) 
関連する問題