У меня есть простая установка моделей User
и UserProfile
с User has_one :user_profile
и UserProfile belongs_to :user
.
Но я не могу понять, как Rails определяет порядок выполнения after_create
callback и 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 здесь делает внутри? Последовательность выполнения просто определяется порядком кода?
Где мне начать копать глубже или отлаживать это?