У меня есть несколько моделей, связанных в памяти (parent: child: child: child) и сохраненных одновременно путем сохранения самого верхнего родителя. Это отлично работает.
Я бы хотел подключиться к обратному вызову after_create одного из дочерних элементов, чтобы заполнить таблицу изменений. Одним из атрибутов, которые мне нужно скопировать / вставить в таблицу изменений, является дочерний ключ foreign_key для его прямого родителя, но он не существует в момент запуска after_create!?!
Без обратного вызова after_create я могу посмотреть в журнале и увидеть, что дочерний элемент сохраняется до того, как его родитель (пустой внешний ключ), затем родительский элемент вставляется ... затем дочерний элемент обновляется с помощью идентификатор от родителя. Дочерний объект after_create запускается в нужное время, но это происходит до того, как у Rails появится возможность обновить дочерний элемент с помощью foreign_key.
Есть ли способ заставить Rails сохранять такую связь моделей в определенном порядке? ie.parent, затем child (родительский Foreign_key существует), затем дочерний элемент этого дочернего элемента (опять же, Foreign_key доступен) и т. д. ?? Если нет, как бы я запустил рутинный пожар после создания записи и получения иностранного ключа?
Кажется, что будет полезен обратный вызов: after_create_with_foreign_keys