# Change Password with acts\_as\_authenticated

**URL:** <https://www.ruby-forum.com/t/change-password-with-acts-as-authenticated/52424>\
**Category:** Rails\
**Created:** [January 13, 2006, 10:52pm UTC](https://www.ruby-forum.com/t/change-password-with-acts-as-authenticated/52424 "2006-01-13T22:52:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![scott](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/3e96dc/32.png) [@scott](https://www.ruby-forum.com/u/scott)\
**Post date:** [January 13, 2006, 10:52pm UTC](https://www.ruby-forum.com/t/change-password-with-acts-as-authenticated/52424/1 "2006-01-13T22:52:00Z")

</div>

I want to have a form to change a users password. I can’t figure out  
what the method in the controller should look like. I tried @user.save  
and @user.update\_attributes, but can’t get it to work.

My Form:  
##############################  
\<%= start\_form\_tag :action =\> “update\_password”, :id =\> @user.id %\>  
\<%= password\_field (“user”, “password”, :size =\> 20) %\>  
\<%= password\_field (“user”, “password\_confirmation”, :size =\> 20) %\>  
\<%= submit\_tag “Change Password” %\>  
\<%= end\_form\_tag %\>

In My Controller:  
###############################  
def update\_password  
return unless request.post?  
@user = User.find(params[:id])  
if @user.update\_attributes(params[:user])  
flash[:notice] = ‘User password was successfully updated.’  
redirect\_to :action =\> ‘edit’, :id =\> @user  
else  
render :action =\> ‘edit’, :id =\> @user  
end  
end

---

<div class="post-metadata">

**Author:** ![scott](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/3e96dc/32.png) [@scott](https://www.ruby-forum.com/u/scott)\
**Post date:** [January 13, 2006, 10:58pm UTC](https://www.ruby-forum.com/t/change-password-with-acts-as-authenticated/52424/2 "2006-01-13T22:58:00Z")

</div>

On 1/13/06, scott [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> \<%= end\_form\_tag %\>  
> render :action =\> ‘edit’, :id =\> @user  
> end  
> end

Look at how I do it with Rails Weenie (which uses  
acts\_as\_authenticated).

[http://collaboa.techno-weenie.net/repository/file/rails\_help/app/views/account/edit.rhtml](http://collaboa.techno-weenie.net/repository/file/rails_help/app/views/account/edit.rhtml)  
[http://collaboa.techno-weenie.net/repository/file/rails\_help/app/views/account/\_form.rhtml](http://collaboa.techno-weenie.net/repository/file/rails_help/app/views/account/_form.rhtml)  
[http://collaboa.techno-weenie.net/repository/file/rails\_help/app/controllers/account\_controller.rb](http://collaboa.techno-weenie.net/repository/file/rails_help/app/controllers/account_controller.rb)  
[http://collaboa.techno-weenie.net/repository/file/rails\_help/app/models/user.rb](http://collaboa.techno-weenie.net/repository/file/rails_help/app/models/user.rb)

If save isn’t working, check for any validation errors or before\_save  
callbacks that return false.

–  
rick  
[http://techno-weenie.net](http://techno-weenie.net)

---

<div class="post-metadata">

**Author:** ![scott](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/3e96dc/32.png) [@scott](https://www.ruby-forum.com/u/scott)\
**Post date:** [January 13, 2006, 11:30pm UTC](https://www.ruby-forum.com/t/change-password-with-acts-as-authenticated/52424/3 "2006-01-13T23:30:53Z")

</div>

What I wrote earlier was actually working, I was testing with a password  
that was too short.  
When I added  
\<%= error\_messages\_for (:user) %\>  
it showed the error.  
Thanks for the tip/reminder.

Rick O. wrote:

> On 1/13/06, scott [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > \<%= end\_form\_tag %\>  
> > render :action =\> ‘edit’, :id =\> @user  
> > end  
> > end
> 
> Look at how I do it with Rails Weenie (which uses  
> acts\_as\_authenticated).
> 
> [http://collaboa.techno-weenie.net/repository/file/rails\_help/app/views/account/edit.rhtml](http://collaboa.techno-weenie.net/repository/file/rails_help/app/views/account/edit.rhtml)  
> [http://collaboa.techno-weenie.net/repository/file/rails\_help/app/views/account/\_form.rhtml](http://collaboa.techno-weenie.net/repository/file/rails_help/app/views/account/_form.rhtml)  
> [http://collaboa.techno-weenie.net/repository/file/rails\_help/app/controllers/account\_controller.rb](http://collaboa.techno-weenie.net/repository/file/rails_help/app/controllers/account_controller.rb)  
> [http://collaboa.techno-weenie.net/repository/file/rails\_help/app/models/user.rb](http://collaboa.techno-weenie.net/repository/file/rails_help/app/models/user.rb)
> 
> If save isn’t working, check for any validation errors or before\_save  
> callbacks that return false.
> 
> –  
> rick  
> [http://techno-weenie.net](http://techno-weenie.net)
