我使用以下命令创建了一个模型:
rails g model UserCertification user:references certification:references certification_no:string
Run Code Online (Sandbox Code Playgroud)
这是参考我的设计用户模型user:references。
在 db:migrate 我收到以下错误: 引起:
ActiveRecord::MismatchedForeignKey:
user_id表user_certifications上的列id与users类型为 的列不匹配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
我还删除了模型并重新编辑并检查了以前的参考资料,但没有成功。也许有人有想法?