SORU
19 EKİM 2009, PAZARTESİ


Nasıl modelinden öznitelik değişikliklerini tespit etmek için?

Bir model kaydedildikten sonra yürüten raylar bir geri çağırma işlevi oluşturmak istiyorum.

Bu model, bir nitelik olduğunu İddia durumu 'talep durumuna bağlı olarak, olası değerler beklemede, onaylandı, onaylandı, reddedildi

Veritabanı 'devlet' varsayılan değer 'beklemede'.

Modeli ilk kez oluşturulduğunda veya başka bir devlet, bu değişikliklere bağlı olarak güncelleme sonra belirli görevleri gerçekleştirmek için istiyorum.

Benim fikrim modelinde bir işlevi var

    after_save :check_state

    def check_state
      # if status changed from nil to pending (created)
      do this

      # if status changed from pending to approved
      performthistask
     end

Benim soru nasıl bir model içinde değiştirmeden önceki değeri kontrol edebilirim?

CEVAP
19 EKİM 2009, PAZARTESİ


ActiveModel::Dirty modül bakmak gerekir: Talep modeli üzerinde aşağıdaki eylemleri gerçekleştirmek mümkün olmalıdır:

claim.status_changed?  # returns true if 'status' attribute has changed
claim.status_was       # returns the previous value of 'status' attribute
claim.status_change    # => ['old value', 'new value'] returns the old and 
                       # new value for 'status' attribute

claim.name = 'Bob'
claim.changed # => ["name"]
claim.changes # => {"name" => ["Bill", "Bob"]}

Oh! Raylar sevinçleri!

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bach Vlogs

    Bach Vlogs

    18 HAZİRAN 2011
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • ethr95awd

    ethr95awd

    8 Kasım 2006