Кажется, это несоответствие между has_many и has_one.
Ассоциация has_many позволяет вам указать обратный вызов after_add, который вызывается после добавления объекта в коллекцию.
class Person
has_many :parents, :after_add => { puts "Added new parent" } # allowed
has_one :car, :after_add => { puts "Added car" } # not allowed
end
class Car
after_create :assign_name
def assign_name
self.name = "Herbie"
end
end
К сожалению, для ассоциации has_one обратного вызова after_add не существует. Как добиться того же для has_one?