小编Chr*_* K.的帖子

由于外键类型,Rails 模型生成失败

我使用以下命令创建了一个模型:

rails g model UserCertification user:references certification:references certification_no:string
Run Code Online (Sandbox Code Playgroud)

这是参考我的设计用户模型user:references

在 db:migrate 我收到以下错误: 引起:

ActiveRecord::MismatchedForeignKey:user_iduser_certifications上的列idusers类型为 的列不匹配bigint(20)。要解决此问题,请将user_id列的类型更改 user_certifications为 :bigint。(例如 t.bigint :user_id)。原消息:Mysql2::Error:无法添加外键约束

这是我的迁移

class CreateUserCertifications < ActiveRecord::Migration[6.0]
  def change
    create_table :user_certifications do |t|
      t.references :user, null: false, foreign_key: true
      t.references :certification, null: false, foreign_key: true
      t.string :certification_no

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我试图将类型设置为整数 t.references :user, null: false, foreign_key: true,type: :integer

我还删除了模型并重新编辑并检查了以前的参考资料,但没有成功。也许有人有想法?

ruby-on-rails rails-migrations ruby-on-rails-6

6
推荐指数
2
解决办法
1571
查看次数