現在(2017年8月)のように、これを後で見ている人にとってはgoogle が上位です:ActiveModel :: Dirtyが少し変更されたため、この動作はRails 5.2で変更され、Rails 5.1の時点で非推奨の警告があることに言及する価値があります。
何を変更しますか?
-callbacksでattribute_changed?methodを使用している場合は、after_*次のような警告が表示されます。
  廃止attribute_changed?予定の警告:コールバック後の内部の動作は、Railsの次のバージョンで変更されます。新しい戻り値は、save返された後のメソッド呼び出しの動作を反映します(たとえば、現在の戻り値の反対)。現在の動作を維持するには、saved_change_to_attribute?代わりにを使用してください。(/PATH_TO/app/models/user.rb:15のsome_callbackから呼び出されます)
言及しているように、関数をに置き換えることで簡単に修正できますsaved_change_to_attribute?。たとえば、にname_changed?なりsaved_change_to_name?ます。
同様に、attribute_changebefore-after値を取得するためにを使用している場合、これも変更され、以下をスローします。
  廃止attribute_change予定の警告:コールバック後の内部の動作は、Railsの次のバージョンで変更されます。新しい戻り値は、save返された後のメソッド呼び出しの動作を反映します(たとえば、現在の戻り値の反対)。現在の動作を維持するには、saved_change_to_attribute代わりにを使用してください。(/PATH_TO/app/models/user.rb:20のsome_callbackから呼び出されます)
繰り返しになりますが、このメソッドは名前を変更し、saved_change_to_attributeがに戻ります["old", "new"]。またはsaved_changes、すべての変更を返すを使用しますsaved_changes['attribute']。これらにはとしてアクセスできます。