如果你有多态的belongs_to关联,那么引用将添加所需的两个列:
create_table :products do |t| t.references :attachment,:polymorphic => {:default => 'Photo'} end
将添加一个attachment_id列和一个字符串attachment_type列,其默认值为“Photo”.
这到底是什么意思?
解决方法
基本上,根据定义,多态关联增加了与许多其他Rails ActiveRecord模型创建关联的能力.
两个列都可以让Rails知道关联所指的模型,你有attachment_type列(即字符串)(默认值是“Photo”,表名:db中的照片),
并且attachment_id有点像该特定模型/表(即照片)的外键.
通常,这使您可以灵活地将一个模型与其他模型相关联.