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

  • B4ROK

    B4ROK

    1 EKİM 2008
  • Caina Mondo Zine

    Caina Mondo

    13 EKİM 2007
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010