Как я должен использовать after_create с условием в модели - PullRequest
16 голосов
/ 06 сентября 2011

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

after_create :send_welcome_email

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

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

например?

1 Ответ

37 голосов
/ 06 сентября 2011

Есть три способа сделать это: Symbol, String или Proc.

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

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

...