Как написать этот код, который выполняет только один запрос вместо двух и также запускает проверки?update_all обходит все проверки, определенные в модели.
model = ModelName.find(params[:id]) success = model.update_attribute(:column_name, nil)
Вы не можете. Выполнение проверок включает, по крайней мере, один шаг: загрузка записи базы данных в объект ruby (который занимает один запрос). Обновление базы данных, конечно, требует другого запроса. Так что в любом случае у вас будет два запроса для вашей задачи.
Вы можете использовать метод update:
update
# Updates one record User.update(1, :name => 'testtesttest')
http://apidock.com/rails/ActiveRecord/Relation/update
, но это все равно два запроса, как сказал @mosch.