如何在创建表时重命名外键

时间:2018-04-11 16:51:29

标签: ruby ruby-on-rails-3 ruby-on-rails-4

我有两个useraccount模型。这是一对一的关系,所以我在帐户模型中有belongs_to :user

我有account表的迁移脚本我有t.belongs_to :user, index: true

当我运行rake db:migrate时,它会创建列user_id。我希望名称为user_account_id

我尝试创建另一个迁移脚本以将外键名称从user_id更改为user_account_id并且它可以工作,但是如何在创建表时更改外键名称,这样我就不必添加另一个迁移脚本了?< / p>

由于

1 个答案:

答案 0 :(得分:1)

根据documentation belongs_toreference)自动生成名称,无法自定义字段名称。 因此,对于您的情况,您应该手动生成它。 而不是:

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

在同一次迁移中。