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

ruby – Mongoid:不止一次引用相同模型has_many

发布时间:2020-12-17 03:05:41 所属栏目:百科 来源:网络整理
导读:我希望能够在同一个模型中多次引用模型(has_many关系).例如,给定以下模型: class MyModel include Mongoid::Document field :name,type: String has_many :main_efforts,:class_name = 'Effort',as: :effortable,dependent: :delete,autosave: true has_man
我希望能够在同一个模型中多次引用模型(has_many关系).例如,给定以下模型:

class MyModel
    include Mongoid::Document

    field :name,type: String
    has_many :main_efforts,:class_name => 'Effort',as: :effortable,dependent: :delete,autosave: true
    has_many :secondary_efforts,autosave: true

    validates_presence_of :name
end

class Effort
    include Mongoid::Document

    field :name,type: String
    belongs_to :effortable,polymorphic: true
    validates_presence_of :name
end

如您所见,Effort模型被引用两次.最初,我的Effort模型不是多态的,但似乎Mongoid无法确定努力属于哪个集合(main_efforts或secondary_efforts).因此,我把它变成了多态的.但是,在使其成为多态之后,我的main_efforts和secondary_efforts字段始终是一个空数组.

在同一模型中多次引用多态模型的正确方法是什么(假设需要多态模型)?

解决方法

弄清楚了:

class MyModel
    include Mongoid::Document

    field :name,autosave: true,:inverse_of => :main_effort
    has_many :secondary_efforts,:inverse_of => :secondary_effort

    validates_presence_of :name
end

class Effort
    include Mongoid::Document

    field :name,type: String
    belongs_to :main_effort,:class_name => 'Conop',:inverse_of => :main_efforts
    belongs_to :secondary_effort,:inverse_of => :secondary_efforts
    validates_presence_of :name
end

(编辑:李大同)

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

    推荐文章
      热点阅读