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ş:
Nasıl JavaScript devre dışı olup olmad...
Nasıl C/C tamsayı taşması tespit etmek...
Nasıl iPhone 5 (geniş ekran cihazlar) ...
nasıl bir python değişken bir fonksiyo...
Nasıl sayfa tüm modern tarayıcılarda y...