我知道,保存模型的一般顺序是最深的孩子,然后逐渐上升到父母。但我相对于其他的回调不知道,它发生的线沿线的东西:嵌套父/子模型的模型回调以什么顺序运行?
ChildA - before validation
ChildB - before validation
Parent - before validation
ChildA - after validation
ChildB - after validation
Parent - after validation
ChildA - before save
ChildB - before save
Parent - before save
...
或沿的线条:
ChildA - before validation
ChildA - after validation
ChildA - before save
...
ChildB - before validation
ChildB - after validation
ChildB - before save
...
Parent - before validation
Parent - after validation
Parent - before save
...
的原因,这是非常重要的是,我有回调调整属性,模型上属性的可调整性取决于其他模型的属性。
一个例子是,我想向Parent
自动设置其属性status
要Complete
如果ChildA
和child B's
状态attributes are both
完全and the children are both
valid`。
我试图用puts
声明来测试这个语句,但很明显,这会导致一些奇怪的行为(请参阅此问题:Nested form validation statements repeating multiple times),恐怕它不具有代表性。
我肯定读了Rails指南,但也许我瞎了,因为我没有看到这个随时随地的参考...
你有没有找到答案? – geoboy