Ruby on rails 在Rails 5中运行迁移后,未正确更新外键

Ruby on rails 在Rails 5中运行迁移后,未正确更新外键,ruby-on-rails,ruby,postgresql,Ruby On Rails,Ruby,Postgresql,我有用户和抗议表。用户可以创建抗议。 我想将用户外键添加到具有不同名称“creator”的表中。无论何时运行迁移,我都希望在表中看到creator_id,但在schema.rb中看到的是user_id。原因可能是什么?多谢各位 用户模型 尝试将您的迁移更改为: t.references :creator, index: true, foreign_key: { to_table: :users } 这一回答值得赞扬: 尝试将迁移更改为: t.references :creator, index

我有用户和抗议表。用户可以创建抗议。 我想将用户外键添加到具有不同名称“creator”的表中。无论何时运行迁移,我都希望在表中看到creator_id,但在schema.rb中看到的是user_id。原因可能是什么?多谢各位

用户模型
尝试将您的迁移更改为:

t.references :creator, index: true, foreign_key: { to_table: :users }
这一回答值得赞扬:


尝试将迁移更改为:

t.references :creator, index: true, foreign_key: { to_table: :users }
这一回答值得赞扬:


由于迁移中的这一行,您将看到
用户id

t.references :user
要获取
creator\u id
,可以使用
integer
而不是
references

t.integer :creator_id

由于迁移中的这一行,您将看到
user\u id

t.references :user
要获取
creator\u id
,可以使用
integer
而不是
references

t.integer :creator_id

此问题的根源似乎是您在迁移文件中有
t.references
,并且您希望列名不同于表名,这与此问题根源的可能重复相同,似乎是您在迁移文件中有
t.references
,您希望列名与表名不同,表名与我尝试过的方法相同,而且效果也很好。谢谢。我尝试过这种方法,效果也很好。非常感谢。
t.integer :creator_id