Ini adalah bagaimana saya memecahkan masalah memeriksa perubahan di banyak atribut.
attrs = ["street1", "street2", "city", "state", "zipcode"]
if (@user.changed & attrs).any?
then do something....
end
The changed
Metode mengembalikan array atribut berubah untuk objek.
Keduanya @user.changed
dan attrs
array sehingga saya bisa mendapatkan persimpangan (lihat ary & other ary
metode). Hasil persimpangan adalah array. Dengan memanggil any?
array, saya menjadi kenyataan jika setidaknya ada satu persimpangan.
Juga sangat berguna, changed_attributes
metode mengembalikan hash atribut dengan nilai aslinya dan changes
mengembalikan hash atribut dengan nilai asli dan baru (dalam array).
Anda dapat memeriksa APIDock untuk versi mana yang mendukung metode ini.
http://apidock.com/rails/ActiveModel/Dirty