has_many:autosave => true在保存子项时跳过验证

Nga*_*gan 5 ruby-on-rails ruby-on-rails-3

在这两个轨道2和Rails 3中,如果:自动保存=>真的has_many关联,收集通过循环和保存(:验证=>假)被称为在每个子关联.这是为什么?我们需要一个before_validation回调来为该子对象运行,但它不会,因为它是一个跳过验证的保存.

这有什么好办法?跳过验证的目的是什么?

任何帮助将非常感激!谢谢!

Nga*_*gan 6

验证确实会运行.有一个验证阶段和一个保存阶段.AutoSave尝试同时为这两个模型执行这两个阶段.因此,在保存父模型后,将验证父模型,然后验证其自动保存子项.验证通过后,将发生保存阶段,保存父模型并保存子模型(但跳过验证).原因是因为验证已经运行.

当我在before_save回调期间尝试在父级内部构建子模型时,我遇到了一个问题.因此,在验证阶段,相关对象无法进行验证.