2017-08-15 10 views
0

私は2つのテーブル、CustomersテーブルとCompaniesテーブルを持っています。また、私は結合テーブルとして使用したい空のEmployeesテーブルを作成しました。Rails既存の結合テーブルを移植する

これらは私が持っている団体です。(私は、顧客がそれぞれの会社に関連付ける)これを実行するための最良の方法だろう

class Company < ApplicationRecord 
    has_many :employees 
    has_many :customers, :through => :employees 
end 

class Customer < ApplicationRecord 
    belongs_to :employees 
end 

class Employee < ApplicationRecord 
    belongs_to :customer 
    belongs_to :company 
end 

?顧客の#コントローラの新しい方法では?私は< <を使用する必要があることを読んだが、私はそれにどのようにアプローチするのか分からない。

+0

は 'に属しているか、多くの' employees'を持ってcustomer'ていますか? 「従業員」は「顧客」に属しているか、または「顧客」を所有していますか?今すぐあなたは両方向に 'belongs_to'を持っています –

答えて

1

: クラスの顧客にhas_many:会社、:=>を通じて従業員

+0

私はcustomer_id列とcompany_id列をマイグレーションで追加する必要がありますか、それとも自動的に行いますか? –

+1

あなたは常に結合テーブル(あなたのケースの従業員)に列を追加する必要があります。 ActiveRecordのアサーションをバックアップするには、常に移行が必要です。 –

+0

ありがとうございます。現在Railsを学習しており、より複雑なDB関係をしようとしています。あなたはたくさん助けてくれました。 –

0

あなただけの彼らの従業員に顧客の会社の呼び出しを委任試みることができる:

delegate :company, to: :employee 

customer.rbあなたは顧客にその会社に頼む時はいつでも今、それはそれを処理するために、その従業員を聞いてきます。あなたがここに逆相関の概念を使用する必要が

関連する問題