我有两个user
和account
模型。这是一对一的关系,所以我在帐户模型中有belongs_to :user
。
我有account
表的迁移脚本我有t.belongs_to :user, index: true
当我运行rake db:migrate
时,它会创建列user_id。我希望名称为user_account_id
。
我尝试创建另一个迁移脚本以将外键名称从user_id
更改为user_account_id
并且它可以工作,但是如何在创建表时更改外键名称,这样我就不必添加另一个迁移脚本了?< / p>
由于
答案 0 :(得分:1)
根据documentation belongs_to
(reference
)自动生成名称,无法自定义字段名称。
因此,对于您的情况,您应该手动生成它。
而不是:
t.belongs_to :user, index: true
请试试这个:
t.integer :user_account_id, null: false
...
add_foreign_key table_name, :users, column: :user_account_id, primary_key: :id
在同一次迁移中。