Mongoid 关系多态关联

标签 mongoid

有谁知道如何在Mongoid中做多态关联这是关系的好处,但不是嵌入的。

例如,这是我的 Assignment模型:

class Assignment
  include Mongoid::Document
  include Mongoid::Timestamps

  field :user
  field :due_at, :type => Time

  referenced_in :assignable, :inverse_of => :assignment
end

可以与多个模型具有多态关系:
class Project
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name, :type => String

  references_many :assignments
end

这会引发错误,指出未知常量可分配。当我更改 referenceembed ,这一切都如 Mongoid's documentation 中所述,但我需要它是 reference .

谢谢!

最佳答案

回答一个古老的帖子,但有人可能会发现它很有用。

现在还有一个多态 belongs_to :

class Action                                                                                                                           
  include Mongoid::Document                                                                                                            
  include Mongoid::Timestamps::Created                                                                                                 

  field :action, type: Symbol

  belongs_to :subject, :polymorphic => true                                                                                            
end

class User                                                                                                                             
  include Mongoid::Document                                                                                                            
  include Mongoid::Timestamps                                                                                                          
  field :username, type: String
  has_many :actions, :as => :subject   
end

class Company                                                                                                                          
  include Mongoid::Document                                                                                                            
  include Mongoid::Timestamps                                                                                                          

  field :name, type: String                                                                                                            

  has_many :actions, :as => :subject
end

关于Mongoid 关系多态关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826600/

相关文章:

ruby-on-rails - Mongoid 字段问题

mongodb - 有没有办法将整个mongodb集合转储到oplog中?

ruby-on-rails - 使 mongoid session 只读

ruby-on-rails - Mongoid 是否存在缩放方面的困难?

ruby-on-rails - 无法让 mongoid 与 Rails 4 一起工作

ruby - mongoid 更新所有有条件的文档

ruby-on-rails - Mongoid错误 "undefined method `删除':format:Symbol"

ruby-on-rails - Rails 4 中的 Mongoid 1-N 关系(一对多)

javascript - MongoDB - 不明白如何使用游标遍历集合

ruby-on-rails - 在 Mongoid 中,我如何创建一个数组或引用数量