我刚刚从 Rails 5.0.0 升级到 5.1.1,并开始收到大量弃用警告,如下所示:
弃用警告:的行为changed_attributes
代替
after 回调将在下一版本的 Rails 中发生变化。新的
返回值将反映之后调用该方法的行为save
返回(例如与现在返回的相反)。到
维持当前行为,使用saved_changes.transform_values(&:first)
反而。
和这个:
弃用警告:的行为attribute_changed?
代替
after 回调将在下一版本的 Rails 中发生变化。新的
返回值将反映之后调用该方法的行为save
返回(例如与现在返回的相反)。到
维持当前行为,使用saved_change_to_attribute?
反而。
我没有在项目中的任何地方明确使用这些方法,并且警告主要指向模型上的创建和更新调用。
我相信这与我的验证有关after_update
and after_create
我使用像这样的配置的回调if: { author_id_changed? }
但我不知道该怎么处理它们。
我也相信该警告与this https://github.com/rails/rails/commit/16ae3db5a5c6a08383b974ae6c96faac5b4a3c81ActiveRecord 的大规模更新。
我将不胜感激您能为此提供的任何帮助。
UPD
本文 http://blog.toshima.ru/2017/04/06/saved-change-to-attribute.html帮助很大!
好吧,通过跑步解决了一切bundle update
并更新宝石并关注本文 http://blog.toshima.ru/2017/04/06/saved-change-to-attribute.html和改变attribute_changed?
来电after_
回调(但不在before_
回调和validations
)并从attribute_was
to attribute_before_last_save
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)