2017-09-19 6 views

答えて

1

名前を変更することができる。ここでhas_and_belongs_to_manyの文書である。

字句の順序に基づいて、結合テーブルのデフォルト名は、あなたが望むもの でない場合は、使用することができます:join_tableオプションを使用してを上書きするがデフォルトです。

だから、あなたはこのようにそれを変更することができます。

# Company model 
has_and_belongs_to_many :employees, join_table: "comp_emps" 

# Employee model 
has_and_belongs_to_many :companies, join_table: "comp_emps" 
1

いいえ、実際にテーブルの名前を特定の方法で指定する必要はありません。それは単なる慣習です。任意のモデルのテーブル名を上書きできますが、通常はレガシースキーマがあるために行います。

そして、あなたは会社と従業員の両方に属しているモデルを持っている場合も同様に、それは、またはEmployeeCompany(従来のテーブル名employee_companies(従来のテーブル名はcompany_employeesだろう)CompanyEmployee命名されている必要はありませんが、それは多くの場合に理にかなっています結合表の。

関連する問題