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

  • Break

    Break

    10 Aralık 2005
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • ShoSho

    ShoSho

    20 Ocak 2010