Получих подобна грешка, когато се опитах да създам нов модел, който има препратка към съществуващ модел, създаден преди мигрирането към Rails 5.1.
Въпреки че съобщението за грешка не беше много ясно за това, в моя случай се оказа, че проблемът е несъответствие на типа данни между първичния ключ на стария модел и външния ключ на новия модел (MySQL не позволява това). Това беше така, защото от Rails 5.1 типът данни по подразбиране на всички първични и външни ключове е bigint, но за стария модел типът първичен ключ все още беше цяло число.
Реших това, като конвертирах всички първични и външни ключове на текущите модели в bigint, така че мога да използвам новите настройки по подразбиране на Rails и да забравя за това.
Заобиколно решение може също да бъде указване на целочислен тип за новите външни ключове, така че да съответстват на типа първични ключове на старите модели. Нещо като следното:
class CreateUserImages < ActiveRecord::Migration[5.1]
def change
create_table :user_images do |t|
t.references :user, type: :integer, foreign_key: true
t.string :url
end
end
end