Object.update_attribute(:only_one_field, "Some Value")
Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3")
Оба они будут обновлять объект без явного указания AR обновлять.
Rails API говорит:
для атрибута обновления
Обновляет отдельный атрибут и сохраняет запись, не проходя обычную процедуру проверки. Это особенно полезно для логических флагов на существующих записях. Обычный метод update_attribute в Base заменяется этим при смешивании модуля валидации, что по умолчанию.
для атрибутов обновления
Обновляет все атрибуты из переданного хэша и сохраняет запись. Если объект недействителен, сохранение не удастся и будет возвращено false.
Так что, если я не хочу проверять объект, я должен использовать update_attribute. Что если у меня будет это обновление для before_save, будет ли это переполнение стека?
Мой вопрос: update_attribute также обходит перед сохранением или только проверку.
Кроме того, каков правильный синтаксис для передачи хеша в update_attributes ... посмотрите мой пример вверху.