আমি একাধিক বৈশিষ্ট্যের পরিবর্তনের জন্য এটি পরীক্ষা করার সমস্যাটি সমাধান করেছি।
attrs = ["street1", "street2", "city", "state", "zipcode"]
if (@user.changed & attrs).any?
then do something....
end
changedপদ্ধতি চারিত্রিক বৈশিষ্ট্য আছে যেগুলো বস্তুর জন্য পরিবর্তন একটি বিন্যাস দেখায়।
উভয়ই @user.changedএবং attrsঅ্যারে তাই আমি ছেদটি পেতে পারি ( ary & other aryপদ্ধতিটি দেখুন)। ছেদ করার ফলাফলটি একটি অ্যারে। any?অ্যারেতে কল করে, যদি অন্তত একটি চৌরাস্তা থাকে তবে আমি সত্য হয়ে উঠি।
এছাড়াও খুব দরকারী, changed_attributesপদ্ধতিটি তাদের মূল মানগুলির সাথে বৈশিষ্ট্যের changesএকটি হ্যাশ প্রদান করে এবং মূল এবং নতুন মানগুলির সাথে একটি অ্যারেগুলিতে বৈশিষ্ট্যের একটি হ্যাশ প্রদান করে।
সংস্করণগুলি এই পদ্ধতিগুলিকে সমর্থন করে যার জন্য আপনি এপিআইডক চেক করতে পারেন।
http://apidock.com/rails/ActiveModel/Dirty