v průběhu modulu 2 na Flatiron School (Ruby on Rails) jsem stále viděl .vyzkoušejte metodu používanou v příkladech (zejména pro ověření hesla) a nebyl si jistý, co tato metoda dělá. Vypadalo to jako nějaká magie kolejnic, jako všechno ostatní, a nebyl jsem si jistý, jak ji správně používat-tak jsem provedl nějaký výzkum, a je to vlastně opravdu užitečná metoda.

příklad kódu kde .zkuste by bylo užitečné při čištění kódu

jedno místo, kde .pokus je opravdu užitečný a často se používá v metodě přihlášení//sessions controller. Zde, na řádku 18, je Kód o něco složitější, než je nutné. Nejprve najdu uživatele e-mailem, který vložili do přihlašovacího formuláře. Poté, abych ověřil heslo uživatele, musím nejprve říci, zda existuje uživatel (if @ user), a pokud je heslo uživatele správné, přihlaste se k tomuto uživateli. Je to trochu opakující se, a místo, kde .zkuste přijde vhod.

mírně čistší kód pomocí .zkuste

co .metoda try dělá (podle dokumentace) je vyvolá metodu nazývanou jako první argument na .zkuste, a volá to na přijímači, stejně jako každá jiná metoda. Je užitečné, že pokud přijímač (zde @ user) nereaguje na metodu, místo toho, aby zlomil a zvýšil chybu, vrátí nulu. Takže! V metodě přihlášení můžete vidět, kde by to bylo užitečné. Pokud uživatel vloží nesprávný e-mail nebo nemá účet, nebude v databázi existovat a uživatel jej nenajde.find_by metoda. Ale další řádek se kvůli tomu nezlomí a v kódu není žádné další if a prohlášení.

dalším příkladem použití .zkuste metodu

to lze použít na mnoha místech k vyčištění kódu a zabránění chybám, pokud uživatel neexistuje, nebo pokud byl ve výše uvedeném případě uživatel smazán nebo byla odstraněna samotná aktivita, a proto již nemá vlastníka. Tento kód (pomocí gem veřejné aktivity k zobrazení časové osy aktivity uživatele) se lámal, když uživatel smazal svůj komentář, dokud jsem se nevrátil do kódu a přidal .zkuste metodu.

je to docela jednoduché použití, i když se to na první pohled nezdá snadné! Určitě budu pokračovat v používání .zkuste v mém kódu Rails trochu vyčistit věci a zabránit chybám, a doufejme, že tento blog vám to také pomohl vyčistit.