SORU
5 EKİM 2010, Salı


Öznitelikleri after_save geri Raylar değişti ne olduğunu belirlemek?

Model benim gözlemci olarak after_save bir geri arama eğer bu model ise sadece bir bildirim göndermek için hazırlıyorumyayınladıöznitelik true false olarak değiştirildi. Yöntemleri yana gibideğişti?model kaydedilmeden önce sadece yararlıdır, şu anda (ve başarısız) öyle yapmaya çalışıyorum şekilde aşağıdaki gibidir:

def before_save(blog)
  @og_published = blog.published?
end

def after_save(blog)
  if @og_published == false and blog.published? == true
    Notification.send(...)
  end
end

Herkes bu, tercihen modeli gözlemci geri çağrıları kullanarak halletmenin en iyi yolu olarak herhangi bir öneriniz benim denetleyicisi kodu kirletme değil () var mı?

CEVAP
5 EKİM 2010, Salı


Model üzerinde after_update filtreolabilir_changed? erişimci (en az 3 Raylar, Raylar için değil emin 2) kullanın. Örneğin:

class SomeModel < ActiveRecord::Base
  after_update :send_notification_after_change

  def send_notification_after_change
    Notification.send(...) if (self.published_changed? && self.published == true)
  end

end

Çok işe yarıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Authority

    Android Auth

    3 NİSAN 2011
  • Strata1000

    Strata1000

    28 EYLÜL 2009
  • WPBeginner - WordPress Tutorials

    WPBeginner -

    17 Temmuz 2009