У меня есть простая настройка модели User
и UserProfile
с User has_one :user_profile
и UserProfile принадлежит :user
.
Но я не могу понять, как Rails определяет порядок выполнения обратного вызова after_create
и accepts_nested_attributes_for
, определенных в моей модели. Рассмотрим эти два случая.
Случай 1:
class User < ActiveRecord::Base
has_one :user_profile
accepts_nested_attributes_for :user_profile
after_create :test_test
end
Теперь, если я создаю пользователя (с хешем user_profile_attributes также) через консоль, обратный вызов after_create
запускается после создания пользователя и его пользовательского профиля.
Случай 2:
Если after_create
находится вверху,
class User < ActiveRecord::Base
after_create :test_test
has_one :user_profile
accepts_nested_attributes_for :user_profile
end
обратный вызов запускается после создания пользователя, но до создания профиля пользователя.
Это то, как это должно работать. Что здесь делает Rails внутри? Определяется ли последовательность выполнения просто порядком выполнения кода?
Где я могу начать копать глубже или отлаживать это?