In order to read:
To add to all of the above, another good book after you get through those resources is Rails Antipatterns. While I do not suggest this book for a beginner as learning the basics of Rails is overwhelming enough, once you get past that stage then this book will be the logical next step in learning how to refactor your code better.
I guess that there's no real advantage at creating new actions.
And from what I can remember from that book you should stick to the 7 classic actions (index / show / new / edit / create / update / delete) if you can, in order to keep everything RESTFul.
Anyway, the action would probably do the same thing.
a classic update would be :
user = User.find(params[:id]).update_attributes! params[:user]
and the eventual update_password & update_email would probably look something like that
user = User.find(params[:id]).update_attributes! email: params[:user][:email]
user = User.find(params[:id]).update_attributes! password: params[:user][:password]
When using a single action (the update one) , the only eventual problem would be that a user could update its password via the change email form by changing the html on the page for instance.
I don't think that this is a problem as the user has the ability to change his password anyway.
So I would stick to the classic update method.
If I missed your point, please let me know ;)