【问题标题】:What is the benefit of Rails polymorphic associations? Provide some DRYed up code?Rails 多态关联有什么好处?提供一些干燥的代码?
【发布时间】:2015-07-29 12:45:51
【问题描述】:

我知道如何构建它,并且我知道它可以减少表的数量。假设我们有一个用户表和一个图书表,并且都有照片。

我们的照片表可以有一个 imageable_id 和一个 imageable_type 列。但这给我们带来了什么好处?

一个好处:
1. 我们在这张照片表中少了 1 列,因为我们不必为每个有照片的表建立一个 model_id 列。这样......当一张照片属于一个表但不属于另一个时,我们将减少列中的空值......但这是速度优势吗?组织优势?

【问题讨论】:

标签: ruby-on-rails polymorphism


【解决方案1】:

我不会忽视 DRY 的好处。我的意思是,使用多态关联,您可以将可成像组件的预期行为链接到任何模型。您不仅将获得更好的关注点分离,而且还可以重用大量代码。

【讨论】:

  • DRY 发生在哪里?
  • 当您概括 Image 组件并开始将其用于书籍和照片时,就会发生这种情况。由于这种策略,您可以授予对给定模型的任何图像特定行为的访问权限。
  • 你能提供一些 Rails 代码来说明它是如何干涸的吗?
  • 看看this scenario。假设您想要一个名为nickname 的方法,它是Profile 的一部分。例如,如果没有关联,您就必须为每个模型定义它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-14
  • 2018-11-05
  • 1970-01-01
  • 2021-06-17
相关资源
最近更新 更多