# Update\_all along with conditions, validations and callbacks

**URL:** <https://www.ruby-forum.com/t/update-all-along-with-conditions-validations-and-callbacks/143776>\
**Category:** Rails\
**Created:** [July 22, 2008, 5:49pm UTC](https://www.ruby-forum.com/t/update-all-along-with-conditions-validations-and-callbacks/143776 "2008-07-22T17:49:03Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![deepak](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/7bcc69/32.png) [@deepak](https://www.ruby-forum.com/u/deepak)\
**Post date:** [July 22, 2008, 5:49pm UTC](https://www.ruby-forum.com/t/update-all-along-with-conditions-validations-and-callbacks/143776/1 "2008-07-22T17:49:03Z")

</div>

hi,  
I want to update the database given a where clause. Basically i want a  
function like ActiveRecord::base.update\_attributes along with a  
parameter for condition.

[http://www.railsbrain.com/api/rails-1.2.6/doc/index.html?a=M001518&name=update\_attributes](http://www.railsbrain.com/api/rails-1.2.6/doc/index.html?a=M001518&name=update_attributes)

Currently as far as i can tell only update\_all has a where clause but  
it does not respect callbacks or validations. I can enclose the  
update\_attributes statement in a if clause, but then it is possible  
that i have loaded a stale object. Also is it possible to get the  
update\_count and not the updated object.

eg :  
if obj.status == ‘P’  
obj.update\_attributes(:status =\> ‘D’, :amount =\> 100)  
end
