class Users::PasswordsController < Devise::PasswordsController include Helpers::Email def reset_confirmation self.resource = resource_class.new @email = params["email"] if @email.empty? resource.errors.add :email, "Enter an email address" render "devise/passwords/new", status: :unprocessable_entity elsif !email_valid?(@email) resource.errors.add :email, "Enter an email address in the correct format, like name@example.com" render "devise/passwords/new", status: :unprocessable_entity else flash[:notice] = "Reset password instructions have been sent to #{@email}" render "devise/confirmations/reset" end end def create self.resource = resource_class.send_reset_password_instructions(resource_params) yield resource if block_given? respond_with({}, location: after_sending_reset_password_instructions_path_for(resource_name)) end protected def after_sending_reset_password_instructions_path_for(_resource) confirmations_reset_path(email: params.dig("user", "email")) end end