In Rails 3, how can I skip validation of the password field when I'm not attempting to update the password?

Viewed 14351

My User model contains :name, :email, and :password fields. All 3 have validations for length. An "update account" web page allows the user to update his name and email address, but not password. When submitted, params[:user] is

{"name"=>"Joe User", "email"=>"user@example.com"}

Note there is no "password" key because the form doesn't contain such an input field.

When I call

@user.update_attributes(params[:user])

the password validation fails. However, since I'm not attempting to update the password, I don't want the password validation to run on this update. I'm confused why the password validation is running when params[:user] doesn't contain a "password" key.

Note that I want to have a separate web page elsewhere that allows the user to update his password. And for that submission, the password validation should run.

Thank you.

5 Answers
Related