我刚刚从 Rails 5.0.0 升级到 5.1.1 并开始收到大量的弃用警告,如下所示:
弃用警告:
changed_attributes
inside of after 回调的行为将在下一版本的 Rails 中改变。新的返回值将反映返回后调用方法的行为save
(例如,与现在返回的相反)。要保持当前行为,请saved_changes.transform_values(&:first)
改用。
还有这个:
弃用警告:
attribute_changed?
inside of after 回调的行为将在下一版本的 Rails 中改变。新的返回值将反映返回后调用方法的行为save
(例如,与现在返回的相反)。要保持当前行为,请saved_change_to_attribute?
改用。
我没有在我的项目中的任何地方明确使用这些方法,并且警告主要指向我的模型上的创建和更新调用。
我相信这与我的验证和after_update
回调after_create
有关,我使用类似的条件,if: { author_id_changed? }
但我不知道如何处理它们。
我也相信这个警告与ActiveRecord的大规模更新有关。
将不胜感激您可以为此提供的任何帮助。
UPD
这篇文章帮助很大!