Я понимаю, что, чтобы проверить, если модель изменилась можно использовать:РЕЛЬСЫ Проверьте, какой атрибут модели изменился
instance.changed?
Кроме того, чтобы проверить, если атрибут изменился:
instance.attr_changed?
но как мы можем определить, какой атрибут изменился? Есть ли способ, по которому мы можем перебирать все атрибуты один за другим и как-то определять, какой из них изменился?
hmm ... удивительно, пример.измененный? возвращает true, а instance.changed ничего не печатает. Есть идеи ? –
Это довольно интересно. Может быть, вы используете некоторые драгоценные камни, которые перезаписывают некоторые из функций AR? Когда вы смотрите на документы: http://api.rubyonrails.org/classes/ActiveModel/Dirty.html#method-i-changed, вы можете увидеть реализацию 'changed':' changed_attributes.present? ',' Changed? ' : 'changed_attributes.keys' и' changed_attributes': '@changed_attributes || = ...'. Поэтому - на самом деле это невозможно ... УНИВЕРСАЛЬНО ** вы как-то меняете поведение AR. – Esse
Да, действительно, это было отменено. Благодаря! –