I have a simple form to allow the user to update their password. It
always throws the error saying that the password is too short (they are
over the min of 6 chars). The passwords are making it in to the model
just fine. If I raise an exception within the before_validation user
method the password and password confirmation values both exist, but it
still throws an error.
I do have both the pw and pw_conf as attr_accessible in the users model.
I am stumped to why it is doing this. Any ideas?
def password
@user = current_user
return if request.get?
if @user.update_attributes(
:password => params[:password],
:password_confirmation => params[:password_confirmation])
flash[:success] = "Your password has been updated."
redirect_to admin_user_path(@user)
else
render :action => :password
end
end
Looking at the params that are submitted would probably tell you why.
You're abusing password_field by passing nil as the second argument.
You could either use form builders, form for etc... use password_field
properly (ie first parameter is the name of an instance variable, 2nd
is a method name) or use password_field_tag.
Looking at the params that are submitted would probably tell you why.
You're abusing password_field by passing nil as the second argument.
You could either use form builders, form for etc... use password_field
properly (ie first parameter is the name of an instance variable, 2nd
is a method name) or use password_field_tag.
And if you're lucky enough that rails lets you get away with that,
then showing the code that's actually relevant here (ie the model and
its validations) would be useful.