Я не могу понять, почему after_add
выполняет метод до создания объекта.
Предположим, у меня есть класс User
class User << ActiveRecord::Base
has_many :user_subjects, after_add: :create_user_subject
def create_user_subject(user_subject)
UserSubject.create!(user_id: self.id,......)
end
end
Так что, когда я пытаюсьсоздать пользовательский объект.
user = User.new(name: 'some name')
user.save
, тогда он выдает ошибку
OCIError: ORA-01400: cannot insert NULL into ("user_subjects"."user_id")
Почему он пытается сохранить ассоциацию subjects
до создания user
объекта.Он работал в rails 3
, почему функциональность изменилась в rails 5
и каковы альтернативы.Спасибо