Activerecord 有人能用一个例子详细解释多态关联吗?

Activerecord 有人能用一个例子详细解释多态关联吗?,activerecord,ruby-on-rails-5,rails-activerecord,Activerecord,Ruby On Rails 5,Rails Activerecord,我知道,对于多态关联,一个模型可以在单个关联上属于多个其他模型。 我想知道单一关联的含义。关于多态关联的定义,你是正确的。术语“单一关联”意味着我们可以使用记录类型和记录id的组合来服务多个属于关系。我理解这听起来可能和定义本身一样模糊。因此,我将使用中提到的示例: 请注意,imageable_类型和imageable_id如何帮助我们确定此图片所属的系统中的确切记录。对于id为3的产品,图片如下: #<Picture id: 1, url: "some_url", imageable_t

我知道,对于多态关联,一个模型可以在单个关联上属于多个其他模型。
我想知道单一关联的含义。

关于多态关联的定义,你是正确的。术语“单一关联”意味着我们可以使用
记录类型
记录id
的组合来服务多个
属于
关系。我理解这听起来可能和定义本身一样模糊。因此,我将使用中提到的示例:

请注意,imageable_类型和imageable_id如何帮助我们确定此图片所属的系统中的确切记录。对于id为3的
产品
,图片如下:

#<Picture id: 1, url: "some_url", imageable_type: "Product", imageable_id: 3....>
#
如果没有多态关联,我们必须添加两列,
employee\u id
product\u id
,才能与上述模型建立
归属关系。想象一个场景,5-6个不同的模型可能有图片

使用多态关联的优点是什么?

  • 它们有助于与共享资源(如图片、评论等)进行交互的统一API

  • 允许轻松添加可共享资源的新模型,而无需添加新列。这也有助于避免记录中出现多个未使用的列

  • #<Picture id: 1, url: "some_url", imageable_type: "Employee", imageable_id: 3....>
    
    #<Picture id: 1, url: "some_url", imageable_type: "Product", imageable_id: 3....>