How to change the value of User attribute

Dear All i follow the instruction of Ruby on rails 3 tutorial, now i want to update the email of the User, user =User.find(1) user.update_attributes(:email=>"test@gmail.com")

but the save failed, error message is "password can not be blank", so i try this one user.update_attributes(:email=>"test@gmail.com", :password =>"12345678") then it success,but i dont want to update the password, i try a lots times that is i want to change the value of other attributes, i must update the password, if not ,the updating will fail.

how can i update without updating the password ?

Check the User model (…/app/models/user.rb) and see if there is a validation on password, present, could be e.g.

validates :password, :presence => true

If you not requre a password to be present, you could deactive that line.

Or, alternatively, you could make sure a password is filled in for the user.

You can check these valdiation errors e.g. with this code

user.valid? # false if some validation failed user.errors.messages # all the validations that failed

HTH,

Peter

Peter Vandenabeele wrote in post #1041264:

change you password validation to

add :on => :create to your password validation. It makes it so the validations are only called for the specified controller action.

example: validates :password, :presence => true, :on => :create

Check out the rails guide for more info http://guides.rubyonrails.org/active_record_validations_callbacks.html#on