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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |