我有以下情况,我有一个文档,我需要在一些文档中嵌入,但为了可追溯性(例如需要知道订阅每种类型的人数)我需要将它存储为不同的文献。因此,当我尝试保存一组默认类型时,它会说:
Mongoid::Errors::NoParent:
Problem:
Cannot persist embedded document Type without a parent document.
我不知道该怎么做或如何处理这种情况,我们非常感谢任何帮助或建议。
class Type
include Mongoid::Document
embedded_in :typeable, polymorphic: true
belongs_to :client
field :count, type: Integer # number of people interested in each Type
end
class Client
include Mongoid::Document
has_many :types
embeds_many :discounts, as: :discountable
end
class Discount
include Mongoid::Document
embeds_many :types, as: :typeable
embedded_in :discountable, polymorphic: true
end
答案 0 :(得分:0)
简单的答案是,您无法为嵌入式模型创建独立文档(您在架构上通过选择嵌入来防止这种情况)。如果您需要一组独立的类型,则应使用has_many
和belongs_to
代替embeds_many
和embedded_in
。
答案 1 :(得分:0)
你有没有想过继承?
让Client
和Discount
模型继承自Type
他们将从您的Type
字段中受益,您也可以拥有独立的Type
索引。