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

  • girleffect

    girleffect

    20 Mayıs 2008
  • Phlearn Photoshop and Photography Tutorials

    Phlearn Phot

    11 EKİM 2011
  • xdadevelopers

    xdadeveloper

    25 Aralık 2009