ruby-on-rails – 如何创建多种类型的has_many关联?

我有以下内容

>一个链接模型
>一个LinkItem模型,我希望它是以下类型

>评论
>一个标签
> ……

我正在使用此代码

链接模型

class Link < ActiveRecord::Base  
  has_many :link_items  
end

LinkItem模型

class LinkItem < ActiveRecord::Base
  belongs_to :link
end

class Comment < LinkItem
end

class Tag < LinkItem
end

现在我不知道如何告诉Rails我的LinkItem模型应该是多态的.我已经阅读了关于asociations和其他教程的Rails指南,但这些仅描述了如何创建与多个其他模型的belongs_to关联,而不是相反.

所以我的问题是:
如何创建has_many关联,其中关联的实例可以是不同类型的?或者更好的是为评论,标签等创建单独的模型,并且只是将它们中的每一个单独与我的链接模型相关联?

编辑
其实我的代码有效.
我只是尝试在我的数据库中使用’type’-column(而不是’link_item_type’)并且rails自动使用它来保存/确定我的LinkItems的正确子类(感谢Ogz的向导提示)
但是,如果不首先引用LinkItem,我仍然无法访问LinkItem的子类.这是一种懒惰的加载吗?

解决方法

如果您正在寻找多态关联 nicholaides 有正确的方法.
如果您正在寻找has_meny多态关联,请查看 the answer to “Setting up a polymorphic has_many :through relationship”.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...