diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index e66425a80..b7a89318c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -11,8 +11,10 @@ class UsersController < ApplicationController flash[:notice] = I18n.t("devise.passwords.updated") if user_params.key?("password") redirect_to user_path(@user) elsif user_params.key?("password") + format_error_messages render :edit_password, status: :unprocessable_entity else + format_error_messages render :edit, status: :unprocessable_entity end end @@ -43,6 +45,18 @@ class UsersController < ApplicationController private + def format_error_messages + errors = @user.errors.to_h + @user.errors.clear + errors.each do |attribute, message| + @user.errors.add attribute.to_sym, format_error_message(attribute, message) + end + end + + def format_error_message(attribute, message) + [attribute.to_s.humanize.capitalize, message].join(" ") + end + def password_params { password: SecureRandom.hex(8) } end