Есть ли способ найти измененные атрибуты для объектов? - PullRequest
6 голосов
/ 21 сентября 2010

Я хочу получить только измененные атрибуты объекта. Есть ли какой-либо метод, который возвращает все обновленные атрибуты?

Ответы [ 2 ]

11 голосов
/ 21 сентября 2010

Учитывая, что в вашем вопросе не так много деталей, я предполагаю, что вы имеете в виду объекты ActiveRecord.Чтобы просмотреть измененные атрибуты на так называемых «грязных объектах», вы можете сделать следующее:

User.changed #=> ["name", "email"]

User.changes #=> { "name" => ["Joe", "Joseph"] }

Существуют также методы для каждого атрибута, если вам нужно проверить определенные.

User.name_changed? #=> true

User.name_change #=> ["Joe", "Joseph"]

Подробнее здесь: http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects

0 голосов
/ 19 февраля 2014

Да ActiveRecord: грязный, однако вы не видите изменений в объектах, сохраненных в БД, таких как user.save: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...