任何人都可以通过示例详细解释多态关联吗?

阿南德

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

阿努伊·坎德尔瓦尔

您对多态关联的定义是正确的。术语“单协会”的手段,我们可以使用的组合record typerecord id服务多个belongs_to关系。我知道这听起来和定义本身一样含糊。因此,我将使用Rails指南中描述的多态关联示例

class Picture < ApplicationRecord
  belongs_to :imageable, polymorphic: true
end

class Employee < ApplicationRecord
  has_many :pictures, as: :imageable
end

class Product < ApplicationRecord
  has_many :pictures, as: :imageable
end

在这里,picture模型是一个多态模型,有两列,imageable_idimageable_type它使用这两列来建立与任何具有has_many :pictures, as: :imageable关系的模型的关系。在上面的例子中,当我们增加一个Picture用于EmployeeID为3,记录在创建Picture模型为:

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

请注意imageable_type和imageable_id如何帮助我们确定该图片所属系统中的确切记录。对于ProductID为3的图片,图片如下:

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

没有多态关联,我们将不得不添加2列,employee_id并且product_id必须belongs_to与上述模型具有关联。想象一下一个场景,其中5-6个不同的模型可能有图片!

使用多态关联有什么优势?

  1. 它们有助于建立用于与共享资源(例如图片,评论等)进行交互的统一API。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

任何人都可以在HTML服务的GAS文档中解释用户对象示例吗?

K&R 1.5.4,如果在此代码示例中,任何人都可以解释else吗?

任何人都可以解释此HashMap行为

任何人都可以解释以下声明

任何人都可以逐步解释该过程

任何人都可以解释以下程序的输出

任何人都可以详细说明Number的精度并在JavaScript中溢出吗?

任何人都可以对CURIE及其使用方法进行很好的解释吗?

任何人都可以在这段代码中解释我的打印语句吗?

关于pytorch张量的奇怪行为。任何人都可以解释清楚吗?

任何人都可以解释这种有关数组排序的奇怪行为吗?

任何人都可以对以下javascript RE代码进行解释吗?

任何人都可以解释这个Javascript数据结构吗?

任何人都可以向我解释这一点吗?关闭

任何人都可以在颤振中向我解释这段代码吗?

任何人都可以更正此代码吗?

任何人都可以理解connStateInterface吗?

任何人都可以帮助解析HCL吗?

任何人都可以处理吗?

任何人都可以回答这个问题吗?

任何人都可以帮助我通过 CSS 对齐图标吗?

任何人都可以通过PIPELINED函数帮助我吗?

输出:没有错误您可能分配了太多内存 任何人都可以详细解释

任何人都可以详细解释以下两个命令正则表达式

任何人都可以解释网络服务器日志数据中的字段吗?

任何人都可以向我解释dispatch_sync和dispatch_async之间的区别吗?

任何人都可以指导我查看用于生成中性景观模型的 Netlogo 代码示例吗?

任何人都可以通过输入用户名和密码来帮助获得响应吗?

任何人都可以解释为什么这代码连接,而不是增加的数值?