Birden çok öznitelikteki değişiklikleri kontrol etme sorununu bu şekilde çözdüm.
attrs = ["street1", "street2", "city", "state", "zipcode"]
if (@user.changed & attrs).any?
then do something....
end
changedYöntemi, nesne için değiştirilebilir niteliklerin bir dizi döner.
Her ikisi de @user.changedve attrsdiziler böylece kavşak alabilirsiniz ( ary & other aryyönteme bakınız ). Kesişimin sonucu bir dizidir. any?Diziyi arayarak , en az bir kavşak varsa doğru olur.
Ayrıca çok yararlı olan changed_attributesyöntem, özniteliklerin bir karmasını orijinal değerleriyle changesdöndürür ve özniteliklerin bir karmasını orijinal ve yeni değerleriyle (bir dizide) döndürür.
APIDock'u bu yöntemleri hangi sürümlerin desteklediğini kontrol edebilirsiniz.
http://apidock.com/rails/ActiveModel/Dirty