Если у вас есть свой код, без каких-либо драгоценных камней и т. Д., Избегайте использования обратных вызовов rails. Я бы рекомендовал использовать Serice Object ex. CreateTeacherPost
, который будет создавать посты, делать магию с параметрами, типами и т. Д. В одной транзакции. Таким образом, вы избежите проблем, как показано ниже, и вы всегда будете знать, что происходит без магии обратных вызовов.
Но если вы действительно хотите использовать этот шаблон, он входит в бесконечный цикл, потому что каждый update_attributes вызывает after_save! метод обратного вызова. Вы можете использовать update_column
метод или before_save
обратный вызов и установить атрибут напрямую, используя self.post_type=number
.
Но первый вызовет обновление SQL во второй раз, для этого нет никаких оснований.
Еще один :), если вы хотите / хотите использовать после обратного вызова, лучше использовать обратный вызов after_commit. Это намного безопаснее.