Saya mendapatkan kesalahan serupa saat mencoba membuat model baru yang memiliki referensi ke model yang sudah ada yang dibuat sebelum bermigrasi ke Rails 5.1.
Meskipun pesan kesalahannya tidak terlalu jelas tentang itu, dalam kasus saya ternyata masalahnya adalah ketidakcocokan tipe data antara kunci utama model lama dan kunci asing model baru (MySQL tidak mengizinkan itu). Itu karena sejak Rails 5.1 tipe data default dari semua kunci utama dan kunci asing adalah bigint, tetapi untuk model lama tipe kunci utama masih bilangan bulat.
Saya memecahkan ini dengan mengonversi semua kunci utama dan kunci asing dari model saat ini ke bigint, jadi saya dapat menggunakan default baru Rails dan melupakannya.
Solusinya juga dapat menentukan tipe integer untuk kunci asing baru sehingga cocok dengan tipe kunci utama model lama. Sesuatu seperti berikut:
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