現在(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_change
before-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']
。これらにはとしてアクセスできます。