No projeto Rails que estou trabalhando estou utilizando o Devise para autenticação, e tive a necessidade de deixar o usuário alterar seus dados sem precisar informar sua senha. Após testar algumas opções do how-to do Devise, a melhor forma de fazer isso foi sobrescrever o método update_with_password, adicionando ao model o seguinte método: def update_with_password(params={}) if params[:password].blank? params.delete(:password) params.delete(:password_confirmation) if params[:password_confirmation].blank? end update_attributes(params) end Feito isso, está pronto. Agora os usuário poderão alterar seus dados sem precisar informar a senha, e para alterar a senha basta informar a nova senha e a confirmação da nova senha.
Compartilhando informações e dicas sobre desenvolvimento - https://www.continuodev.com.br