连接表需要在rails中使用常规命名吗?

时间:2017-09-19 18:49:25

标签: ruby-on-rails

说我有companyemployee个表,我的联接表是否必须被称为companies_employees?我在rails文档中没有看到任何相关内容。

2 个答案:

答案 0 :(得分:1)

不,实际上没有一个表必须以特定方式命名 - 这只是惯例。您可以覆盖任何模型的表名,但通常您会这样做,因为您有一个旧模式。

同样,如果您拥有属于公司和员工的模型,则不必将其命名为CompanyEmployee(传统表名称为company_employees)或EmployeeCompany(传统的表名employee_companies,但它通常是有意义的。

答案 1 :(得分: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"