The result will be the same for your particular case; you're right. But references allows a parameter :polymorphic => true , which automatically creates the foo_type column as a row in the table.
Semantically, references better if you are trying to make your migrations better reflect the relationships between the tables in the database.
Mike gorski
source share