我有一个属于联系人的设备型号:
belongs_to :contact, autosave: true
validates_presence_of :contact
我添加了autosave
和validates_presence_of
因为设备:
关于AutosaveAssociation,无需添加此行:
validates_associated :contact
因为:If validations for any of the associations fail, their error messages will be applied to the parent
但是,在这种情况下,我收到了这样的结果:
> device.valid?
> => true
> device.contact.valid?
> => false
如果联系人的自动保存为真且联系人无效,为什么设备有效?
注意:我没有找到关于如何使用Mongo自动保存的良好文档。这个问题的基础是Mongo。我找到了关于使用ActiveRecord自动保存的很好的文档,但我想了解它如何与mongo一起使用。
答案 0 :(得分:2)
验证未按预期工作的核心原因是因为您的架构规定Device是子节点而Contact是父节点。您应该反转这种关系以获得您期望的行为。