如何为1:many创建关联和迁移

时间:2013-11-03 15:08:20

标签: ruby-on-rails migration

我有2个型号:

Department
 has_many :accounts

Account
 belongs_to :department

但我需要以某种方式创建一个包含以下内容的表:

departments_accounts
department_id
account_id

虽然这不是一张多对多的牌桌吗?由于部门可以拥有多个帐户,但不是相反。

我应该如何创建使用迁移设置新表的迁移?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在DepartmentAccount之间建立has_many :through(多对多)关系。

rails g model DepartmentAccount department:references account:references

这将创建一个带有关联的模型DepartmentAccount

belongs_to :department
belongs_to :account

您必须将Department模型更改为

has_many :department_accounts
has_many :accounts, through: :department_accounts

Account模型需要

has_many :department_accounts
has_many :departments, through: :department_accounts