Какие атрибуты обновляются в модели - PullRequest
1 голос
/ 19 февраля 2010

Есть ли способ узнать, какие атрибуты обновляются в моей модели? Я хочу выполнить проверку пользователя только после публикации определенного атрибута. Это на самом деле будет хеш, который отправляется через параметры например:

@user.update_attributes(params[:user])

Спасибо.

1 Ответ

3 голосов
/ 19 февраля 2010

Это доступно в модуле ActiveRecord :: Dirty , который включен по умолчанию.

Метод changed выдаст вам список атрибутов с несохраненными изменениями.Метод changes даст вам хэш несохраненных изменений, где ключи - это имена атрибутов, а значения - это массив, состоящий из исходного и нового значения.

Например:

@user.changed # => ['name', 'age']  
@user.changes # => { 'name' => ['Bill', 'John'], 'age' => [18, 21] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...