有谁知道如何在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
这会引发错误,指出未知常量可分配。当我更改
reference
至 embed
,这一切都如 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/