получить текущую переменную Rails, в before_save - PullRequest
3 голосов
/ 12 сентября 2010

Есть ли способ получить текущую переменную?допустим, у меня есть атрибут title в методе, и я хочу проверить старое значение переменной?

как мне это сделать?

Ответы [ 2 ]

10 голосов
/ 12 сентября 2010

ActiveRecord предоставляет полный набор методов, которые работают с атрибутами " Dirty ".

В вашем случае вы можете вызвать title_was, чтобы получить самую последнюю сохраненную версию этой переменной

0 голосов
/ 30 ноября 2016

Если вы хотите узнать все измененные атрибуты и их старые значения, вы можете использовать метод updated_attributes , который будет возвращать хеш, содержащий все измененные атрибуты с их предыдущими значениями (обратите внимание, что содержимое хеш-функции можно получитьперед сохранением нового объекта).

Предположим, что у вас есть объект с заголовком old_name:

a = YourModel.where(:title => "old_name")
a.title = "new_title"
a.changed_attributes

Результатами будет ": {" title "=>" old_name "}

Но после сохранения ваших изменений:

a.save
a.changed_attributes

Результатом будет пустой хеш: {}

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