Результат одинаков для вашего конкретного случая; ты прав. Но references
допускает параметр :polymorphic => true
, который автоматически создает столбец foo_type
как строку в таблице.
Семантически, references
лучше, если вы пытаетесь, чтобы ваши миграции лучше отражали отношения между таблицами в базе данных.