Миграция не связана напрямую с вашей моделью.Перед выполнением миграции вам не нужно беспокоиться о том, чтобы что-то добавить (например, ассоциации) в модели или оставить их вне.Миграция - это просто рецепт для создания или изменения таблицы базы данных и ее полей / столбцов.Вы можете отсортировать ассоциации вашей модели до или после выполнения миграций.Это не имеет значения.
Миграции выполняются в порядке имен файлов ваших миграций.Если вы создали свои миграции с помощью script/generate model YourModelName
или script/generate migration MyMigration
, к имени файла всегда добавляется метка времени (например, 20110201165030
).Это гарантирует, что миграции выполняются в том порядке, в котором вы их сгенерировали.
Часть t.references
ничего не должна выяснять.Он берет только следующий символ, делает его строкой, добавляет _id
и создает целочисленное поле с этим (новым) именем в таблице базы данных.Это просто соглашение.Конечно, не ищет в вашей модели какие-либо ассоциации.
(Примеры кода, приведенные здесь, относятся к Rails 2.3. Если вы используете Rails 3, я думаю, что команды генерированиянемного по-другому).