Während des Kurses von Modul 2 an der Flatiron School (Ruby on Rails) sah ich immer wieder das .versuchen Sie, die Methode in Beispielen zu verwenden (insbesondere für die Kennwortauthentifizierung), und waren Sie sich nicht wirklich sicher, was die Methode tat. Es schien nur wie eine Schienenmagie, wie alles andere auch, und ich war mir nicht sicher, wie ich es richtig anwenden sollte — also habe ich etwas recherchiert, und es ist tatsächlich eine wirklich nützliche Methode.

Beispielcode wo .versuchen Sie, den Code

An einer Stelle zu bereinigen, an der .try ist wirklich nützlich und wird oft in einer Anmeldemethode // sessions Controller verwendet. Hier in Zeile 18 ist der Code etwas komplexer als nötig. Zuerst finde ich den Benutzer anhand der E-Mail, die er in das Anmeldeformular eingegeben hat. Um das Kennwort des Benutzers zu authentifizieren, muss ich zuerst sagen, ob ein Benutzer vorhanden ist (if @ user ), UND wenn das Kennwort dieses Benutzers korrekt ist, melden Sie diesen Benutzer an. Es ist ein wenig repetitiv, und ein Ort, wo .try ist praktisch.

Etwas sauberer Code mit .versuchen

Was die .try Methode tut (gemäß der Dokumentation) ist es ruft die Methode als erstes Argument aufgerufen.versuchen Sie es und rufen Sie das auf dem Empfänger auf, genau wie jede andere Methode. Es ist nützlich, dass der Empfänger (hier @ user ), wenn er nicht auf die Methode reagiert, anstatt einen Fehler zu brechen und auszulösen, nur Null zurückgibt. Also! In einer Login-Methode können Sie sehen, wo dies nützlich wäre. Wenn der Benutzer die falsche E-Mail-Adresse eingibt oder kein Konto hat, sind sie nicht in der Datenbank vorhanden und werden vom Benutzer nicht gefunden.find_by Methode. Aber dann wird die nächste Zeile deswegen nicht unterbrochen, und es gibt keine zusätzliche if und Anweisung im Code.

Ein weiteres Beispiel für die Verwendung der .try method

Dies kann an mehreren Stellen verwendet werden, um den Code zu bereinigen und Fehler zu vermeiden, wenn ein Benutzer nicht vorhanden ist oder wenn im obigen Fall ein Benutzer gelöscht wurde oder die Aktivität selbst gelöscht wurde und daher keinen Eigentümer mehr hat. Dieser Code (unter Verwendung des Edelsteins public activity zum Anzeigen einer Zeitleiste der Benutzeraktivität) brach ab, als ein Benutzer seinen Kommentar löschte, bis ich wieder in den Code zurückkehrte und den hinzufügte.methode ausprobieren.

Es ist ziemlich einfach zu bedienen, obwohl es auf den ersten Blick nicht einfach erscheint! Ich werde auf jeden Fall weiter verwenden.versuchen Sie in meinem Rails-Code, die Dinge ein wenig aufzuräumen und Fehler zu vermeiden, und hoffentlich hat dieser Blog auch dazu beigetragen, sie zu klären.