我有一些模型都在内存中链接在一起(父:子:子:子),并通过保存最顶层的父级同时保存。这工作正常。
我想利用其中一个孩子的 after_create 回调来填充变更日志表。我需要复制/推送到更改日志表中的属性之一是孩子的 foreign_key 到它的直接父级,但它在 after_create 触发时不存在!?!
如果没有 after_create 回调,我可以查看日志并查看子项在其父项(外键空白)之前被保存,然后插入父项......然后使用父项的 id更新子项。孩子的 after_create 在正确的时间触发,但它发生在 Rails 有机会使用 foreign_key 更新孩子之前。
有什么方法可以强制 Rails 以某种顺序保存这样的模型链接?即父母,然后是孩子(父母foreign_key存在),然后是孩子的孩子(同样,foreign_key是可访问的)等等。??如果没有,在创建记录并获取foreign_key 后,我将如何进行常规触发?
似乎这样的回调会有所帮助:after_create_with_foreign_keys