Je crée une gemme locale en utilisant httparty pour se connecter à un site Web spécifique pour obtenir un jeton d'authentification. J'ai pu obtenir le programme pour récupérer auth_token quand j'ai entré l'email et le mot de passe corrects. Cependant, si je mets le mauvais email/mot de passe, il retourne: NameError: uninitialized constant Gemname::InvalidStudentCodeError
mauvais nom d'utilisateur/mot de passe erreur de gestion en utilisant httparty
require 'httparty'
class Gemname
include HTTParty
def initialize(email, password)
response = self.class.post("https://www.website.io/api/v1/sessions", body: {"email": email, "password": password})
#####error-handler#####
if StandardError
puts "invalid email/pass"
end
#######################
@auth_token = response["auth_token"]
end
end
Il semble que la plupart des erreurs sont classées sous standard error. L'idée est de courir de l'irb Gemname.new('email', 'wrong-password')
, il renverrait "Wrong email/password"
. Comment dois-je gérer l'erreur pour afficher le bon message?
Edit: J'ai essayé ces codes sur initialize:
if StandardError
"error"
end
J'ai aussi essayé
créé le dossier lib, un dossier nommé gemname -> error.rb error.rb:
class InvalidStudentCodeError < StandardError
def initialize(msg="invalid email or password")
super(msg)
end
end
et à l'initialisation:
raise InvalidStudentCodeError.new() if response.code == 401
Pouvez-vous montrer le code complet de la méthode? –
@NicNilov édité - ajouté les lignes de code que j'ai essayé – Iggy