Je suis en train de créer une méthode qui ingère les e-mails entrants et traite le courrier électronique. En cours de route, il y a beaucoup de choses qui pourraient empêcher le processus d'être couronné de succès. La mauvaise adresse de réponse, l'adresse erronée, un corps de message vide, etc.Rails 3 - Comment faire face à des instructions Switch complexes/If Statements
Le code est rempli d'instructions Switch Statements (case/when/end) et If. J'aimerais apprendre une façon plus intelligente et plus propre de le faire. En outre, un moyen de suivre une erreur et à la fin d'un endroit où il renvoie l'utilisateur avec une erreur. Est-ce que quelque chose comme ça est possible avec des rails?
@error = []
Case XXX
when xxxx
if XXXXX
else
@error = 'You don't have permission to reply to the xxxxx'
end
else
@error = 'Unfamilar XXXX'
end
Puis quelque chose à la fin comme ...
If @errors.count > 0
Send the user an email letting them know what went wrong
else
do nothing
end
Merci pour l'aide ici. Si vous connaissez d'autres tutoriels qui m'apprendraient à écrire une logique comme celle ci-dessus, ce serait génial. À l'heure actuelle, j'ai des observations cas/si allant à 3 niveaux profonds, il est difficile de le garder droit.
Merci
Je préfère très exceptions. La sortie implicite de la méthode est exactement ce que vous voulez dans la plupart des cas. – aceofspades
Utilisez uniquement des exceptions lorsque vous traitez une exception réelle. Si c'est un flux attendu, n'utilisez pas d'exceptions. Par exemple: toutes les données entrées par l'utilisateur sont souvent erronées et ne devraient jamais être traitées avec une exception. Le vrai moyen de nettoyer votre code est de le diviser en petits morceaux logiques (méthodes et classes). Avoir des cas imbriqués et ifs est généralement un problème de conception. L'utilisation d'exceptions dans ce cas est juste un bandaid, mais pas la vraie solution. – iain
Si vous avez un cas complexe, il peut être préférable d'extraire les éléments dans des fonctions de validation au lieu d'utiliser des exceptions. Pesez vos options. – moeffju