在迁移中使用references :foo
时,生成的列称为foo_id
。实际上,做references :foo
和只做integer :foo_id
有什么区别吗?也许在后台执行某些事情以在数据库级别上强制执行关系?
最佳答案
对于您的特定情况,结果是相同的;你是对的。但是references
允许使用:polymorphic => true
选项,该选项将自动将foo_type
列创建为表中的字符串。
在语义上,如果尝试使迁移更好地反映数据库中表之间的关系,则references
会更好。