我有以下内容:
>一个链接模型
>一个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”.
如果您正在寻找has_meny多态关联,请查看 the answer to “Setting up a polymorphic has_many :through relationship”.