ActiveAdmin: how to leave user password unchanged?
activeadmin, ruby-on-rails
Solution
Devise provides an `update_without_password` method that you can use when updating a user if no password is entered. Using that method, you can customize the update method in your ActiveAdmin users controller.
def update
@user = User.find(params[:id])
if params[:user][:password].blank?
@user.update_without_password(params[:user])
else
@user.update_attributes(params[:user])
end
if @user.errors.blank?
redirect_to admin_users_path, :notice => "User updated successfully."
else
render :edit
end
end
The Devise Wiki has more information about this method if your interested.
Problem
I am using ActiveAdmin as my administration backend in my rails app. Basically, I have an `admin_user` and a `user` model. When I create a new user from an admin account, I specify an email and a password, that is ok. Let's say I then want to modify the user's email but not the password... it seems this cannot be done as the password field cannot be blank when updating a user. Is there a configuration somewhere that would consider that the password is unchanged is the fields (password and password_confirmation) are left blank while updating a user?