4

我是一名 Rails 新手,努力理解使用多态关联而不是具有关联外键的多个 belongs_to 声明的优势。例如,在 Ryan Bates 的 railscast ( http://railscasts.com/episodes/154-polymorphic-association-revised ) 中,文章事件照片都可以有很多评论,因此他使用commentable建立了多态关联。

为什么不让评论属于其他三个资产中的每一个,并在其表中包含article_idevent_idphoto_id外键,其中只有一个是非空的?

4

1 回答 1

6

你可以这样做,但会有缺点。我能想到的一些:

  1. 具有许多空值的稀疏表

  2. 没有关注点分离。每当您添加可评论模型时,评论都必须更改

  3. Rails 已经支持多态关联并使其易于使用。那为什么不呢?

于 2013-03-23T19:31:37.373 回答