Obsah
V našich webových aplikacích budeme téměř vždy muset registrovat uživatele, tímto způsobem budeme mít členy našich obchodů, blogů, virtuálních komunit, administrativních systémů atd. Aby byla registrace účinná a užitečná, musí být tito uživatelé schopni se autentizovat, aby mohli zadávat části, které byly vytvořeny pro registrované uživatele, jako je prohlížení jejich profilu, správa jejich zpráv, nákupy, psaní článků atd.Přihlášení je životně důležitou součástí naší aplikace, umožňuje nám oddělit soukromé od veřejného, umožňuje nám vědět, jaký profil má každý uživatel, který vstoupí, a rozhodnout se, co uvidí nebo ne.
Aby naše aplikace měla tuto funkci, potřebujeme v řadiči akci, která nám umožní autentizovat uživatele porovnáním jeho uživatelského jména a hesla s tím, co máme v databázi, pak jakmile k tomu dojde, musíme do relace uložit některé hodnoty které nám umožňují kdykoli vědět, kdo je přihlášen a jaký profil a oprávnění mají, samozřejmě to hodně závisí na designu naší aplikace.
Teď už musíme vědět, jak vygenerovat ovladač a vše, co souvisí s konzolou kolejnice, takže přímo uvidíme ovladač a jeho obsah, stejně jako logiku za ním:
def login if request.get? session [: user_id] = nil @user = User.new else @user = User.new (params [: user]) logged_in_user = @user.try_to_login if logged_in_user session [: user_id] = logged_in_user.id redirect_to (: action => "index") else flash [: notice] = "Neplatná kombinace uživatel / heslo" konec konec konec konec
V první části s podmínkou IF našeho ovladače požadujeme žádostPokud je GET, vyčistíme relaci a vytvoříme nový objekt typu uživatele, tímto způsobem připravíme způsob vstupu. Pokud ne, ZÍSKEJTE žádost předpokládáme, že je POST, pak předáme parametry formuláře našemu objektu a poté zavoláme metodu try_to_login„Tato metoda dělá srovnání uživatelského jména a hesla s tím, co máme v databázi.
Nakonec s dalším podmíněným vidíme, zda byl uživatel skutečně přihlášen, přiřadíme relaci hodnoty a poté uživatele přesměrujeme do indexu, v opačném případě zobrazíme chybu se zprávou.
Jak jsme viděli v ovladači, nazýváme některé metody, které nám umožňují provést odpovídající srovnání, nyní je tedy potřeba tyto metody vytvořit, a proto to uděláme v modelu, podívejme se, co obsahuje a proč obsahuje to:
def self.login (jméno, heslo) hashed_password = hash_password (heslo || "") find (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) konec
Metoda přihlásit se je to jednoduché, přijímá dva parametry: jméno a heslo, poté se dotazuje na tyto hodnoty v databázi.
Metoda try_to_login„To, co dělá, je vyvolání metody přihlášení, tímto způsobem můžeme dát uživateli odpověď, pokud existuje nebo není v naší databázi.
Nakonec v souboru vytvoříme náš pohled a akce, které bude používat aplikace / zobrazení / přihlášení vytvoříme naše login.rhtml a také náš index.rhtml, první je velmi podobný konstrukci uživatele a tento druhý uvidíme nyní.
Celkový počet objednávek v systému:
Objednávky čekající na odeslání:
Jak vidíme, je to docela jednoduché, jednoduše to ukáže nevyřízené objednávky uživatele, proto musíme do ovladače zahrnout potřebné akce:
def index @total_orders = *****. count @pending_orders = *****. count_pending end
Tam bychom viděli výsledek.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod