class PasswordsController < Devise::PasswordsController def create self.resource = resource_class.send_reset_password_instructions(resource_params) yield resource if block_given? if successfully_sent?(resource) render(json: {success: true}) else render(json: {errors: resource.errors}, status: 500) end end def edit self.resource = resource_class.new resource.reset_password_token = params[:reset_password_token] render("edit", layout: "info_window") end def update self.resource = resource_class.reset_password_by_token(resource_params) yield resource if block_given? if resource.errors.empty? resource.unlock_access! if unlockable?(resource) sign_in(resource_name, resource) end redirect_to(controller: "main", action: "index") end private def resource_params params.require(:user).permit(:email, :password, :password_confirmation, :reset_password_token) end end