我是一名铁杆新手,正在努力了解在多个belongs_to声明和相关外键上使用多态关联的优势。例如,在Ryan Bates的railscast(http://railscasts.com/episodes/154-polymorphic-association-revised)中,文章,事件和照片每个都有很多评论,因此他使用 commentable 设置了多态关联。
为什么不让评论属于其他三个资产,包括 article_id , event_id 和 photo_id 其表中只有一个非空的外键?
答案 0 :(得分:6)
你可以这样做,但是会有缺点。我能想到的一些:
包含许多空值的稀疏表
不关注问题。每当您添加可评论模型时,评论都必须更改
Rails已经支持多态关联并且可以很容易地使用它们。为什么不呢?