1

Ruby on Rails Guide中,是imageable一个模型吗?并且imageable有数据库表吗?

如何imageable_id指向idEmployee 和 Product 的两个不同属性?

4

3 回答 3

4

不,在您链接的页面中, imageable 表示与 Employee 或 Product 的多态关联。为了使多态关联起作用,rails 需要通过查看 db 中的“imageable_type”条目,然后查看相应对象的 id(imageable_id)来确定对象的“类型”(即员工或产品) )。

例如,imageable_type => 'Employee' 和 imageable_id => '4' 的 db 中的条目。ActiveRecord 会发现该关联与employees 表中的id 4 相关联。

于 2012-10-12T00:34:55.060 回答
2

imageable_type 帮助 Rails 了解模型属于哪个类。如果您使用imageable:references然后生成模型,那么 rails 将在您的迁移中自动生成 imageable_id 和 imageable_type 列。

于 2012-11-21T05:53:36.643 回答
1

Imageable 不是模型。它是某些模型的占位符(在本例中为 Employee 或 Product)。

imageable_id可以指向不同类型id的方式是Picture也有一个属性imageable_type。对于一个给定的 Picture 实例,它imageable_id通过查看它的imageable_type.

于 2012-10-12T00:32:16.923 回答