Я создал модель с помощью следующей команды:
rails g model UserCertification user:references certification:references certification_no:string
, которая ссылается на мою пользовательскую модель user:references
.
При переносе db: я получаю следующую ошибку: Причина:
ActiveRecord :: MismatchedForeignKey: Столбец user_id
в таблице user_certifications
не соответствует столбцу id
на users
, который имеет тип bigint(20)
. Чтобы решить эту проблему, измените тип столбца user_id
на user_certifications
на: bigint. (Например t.bigint :user_id
). Исходное сообщение: Mysql2 :: Ошибка: Невозможно добавить ограничение внешнего ключа
Вот моя миграция
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
Я попытался установить тип целым числом с t.references :user, null: false, foreign_key: true,type: :integer
Я также удалил модель и переделал и проверил с предыдущими ссылками, но безуспешно. Возможно, у кого-то есть идея?