Я только что обновил проект до Rails 5.1.0, и я вижу это предупреждение об устаревании.
DEPRECATION WARNING: The behavior of `attribute_changed?`
inside of after callbacks will be changing in the next version of Rails.
The new return value will reflect the behavior of calling the method
after `save` returned (e.g. the opposite of what it returns now).
To maintain the current behavior, use `saved_change_to_attribute?` instead.
Мой код выглядит следующим образом
class MyClass
before_valiadtion :my_method
def my_method
if name_changed?
...
end
end
end
Я точно не понимаю предупреждение об устаревании. Если я использую saved_change_to_name
, вместо этого он будет проверять его после его сохранения, но это до проверки обратного вызова.
Я также заметил, что если я изменю name_changed?
на saved_change_to_name
, мои спецификации не будут переданы.
Мне сложно понять, каким должен быть соответствующий способ. Мне кажется, что это было до того, как он выполнял эту работу в порядке, не полностью понял причину этого изменения и как я должен избегать этих предупреждений об отказе.