我知道,保存模型的一般順序是最深的孩子,然後逐漸上升到父母。但我相對於其他的回調不知道,它發生的線沿線的東西:嵌套父/子模型的模型回調以什麼順序運行?
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