有自动保存的rails模型,我应该validate_associated吗?

时间:2015-07-17 06:48:07

标签: ruby-on-rails validation autosave

我有一个属于联系人的设备型号:

belongs_to :contact, autosave: true
validates_presence_of :contact

我添加了autosavevalidates_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一起使用。

1 个答案:

答案 0 :(得分:2)

我在这里发表评论:https://jira.mongodb.org/browse/MONGOID-4132?focusedCommentId=1033059&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-1033059

验证未按预期工作的核心原因是因为您的架构规定Device是子节点而Contact是父节点。您应该反转这种关系以获得您期望的行为。