在Ruby on Rails Guide中,是imageable
一个模型吗?并且imageable
有数据库表吗?
如何imageable_id
指向id
Employee 和 Product 的两个不同属性?
在Ruby on Rails Guide中,是imageable
一个模型吗?并且imageable
有数据库表吗?
如何imageable_id
指向id
Employee 和 Product 的两个不同属性?
不,在您链接的页面中, imageable 表示与 Employee 或 Product 的多态关联。为了使多态关联起作用,rails 需要通过查看 db 中的“imageable_type”条目,然后查看相应对象的 id(imageable_id)来确定对象的“类型”(即员工或产品) )。
例如,imageable_type => 'Employee' 和 imageable_id => '4' 的 db 中的条目。ActiveRecord 会发现该关联与employees 表中的id 4 相关联。
imageable_type 帮助 Rails 了解模型属于哪个类。如果您使用imageable:references
然后生成模型,那么 rails 将在您的迁移中自动生成 imageable_id 和 imageable_type 列。
Imageable 不是模型。它是某些模型的占位符(在本例中为 Employee 或 Product)。
imageable_id
可以指向不同类型id的方式是Picture也有一个属性imageable_type
。对于一个给定的 Picture 实例,它imageable_id
通过查看它的imageable_type
.