Это не «более быстрая» проблема или проблема скорости. Миграции выполняются по одной строке за раз, по порядку. То, как вы указали его ранее, просто не создало столбец правильно, поэтому, когда он добрался до строки, где вы создаете индекс, имена не совпадают.
Я предполагаю, что при строковой версии он создал имя столбца в точности так, как вы его написали, "субъект", а не subject_id
при использовании символа. В любом случае, у вас определенно было несоответствие имени между моментом создания столбца и моментом создания индекса.
Всегда используйте символы для этого в ваших миграциях, и вы должны быть в порядке. Всегда проверяйте свой файл schema.rb
или просматривайте базу данных с помощью инструмента с графическим интерфейсом после миграции, чтобы убедиться, что столбцы созданы так, как вы ожидаете, и с типами данных, которые, как вы думаете, у вас есть, и вам должно быть хорошо. *