Jag fick ett liknande fel när jag försökte skapa en ny modell som har en referens till en befintlig modell som skapades innan migreringen till Rails 5.1.
Även om felmeddelandet inte var särskilt tydligt om det, visade det sig i mitt fall att problemet var datatypsfel mellan primärnyckeln för den gamla modellen och främmande nyckeln för den nya modellen (MySQL tillåter inte det). Det var så för att sedan Rails 5.1 är standarddatatypen för alla primära och främmande nycklar bigint, men för den gamla modellen var primärnyckeltypen fortfarande heltal.
Jag löste detta genom att konvertera alla primära och främmande nycklar för de nuvarande modellerna till bigint, så att jag kan använda Rails nya standardinställningar och glömma det.
En lösning kan också vara att ange heltalstyp för de nya främmande nycklarna så att de matchar primärnycklarnas typ för de gamla modellerna. Något i stil med följande:
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