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
changed
Yöntemi, nesne için değiştirilebilir niteliklerin bir dizi döner.
Her ikisi de @user.changed
ve attrs
diziler böylece kavşak alabilirsiniz ( ary & other ary
yö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_attributes
yöntem, özniteliklerin bir karmasını orijinal değerleriyle changes
dö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