Подтвердить что ты не робот

Как использовать after_create с условием в модели

У меня есть метод, который вызывается после создания объекта

after_create :send_welcome_email

Есть ли способ ограничить это условием, например значением атрибута объекта

after_create :send_welcome_email unless self.role == "Celebrant"

например?

4b9b3361

Ответ 1

Есть три способа сделать это: Символ, Строка или Прок.

class User < ActiveRecord::Base

  after_create :send_welcome_email, unless: :is_celebrant?
  after_create :send_welcome_email, unless: "is_celebrant?"
  after_create :send_welcome_email, unless: Proc.new { self.role == "Celebrant" }

end

Документация