加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:01:15 所属栏目:百科 来源:网络整理
导读:我有以下内容: 一个链接模型 一个LinkItem模型,我希望它是以下类型 评论 一个标签 …… 我正在使用此代码: 链接模型 class Link ActiveRecord::Base has_many :link_items end LinkItem模型 class LinkItem ActiveRecord::Base belongs_to :linkendclass C
我有以下内容:

>一个链接模型
>一个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”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读