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

  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • Machinima

    Machinima

    17 Ocak 2006
  • PC Learning Zone - Computer Training

    PC Learning

    8 EYLÜL 2006