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?

Original source

Related problems