Sukurkite mūsų „Ruby on Rails“ programos prisijungimo duomenis

Turinys
Mūsų žiniatinklio programose beveik visada turėsime registruoti vartotojus, tokiu būdu turėsime savo parduotuvių, tinklaraščių, virtualių bendruomenių, administracinių sistemų ir kt. Kad registracija būtų veiksminga ir naudinga, šie vartotojai turi turėti galimybę patvirtinti save, kad galėtų įvesti dalis, kurios buvo sukurtos registruotiems vartotojams, pvz., Peržiūrėti jų profilį, tvarkyti pranešimus, pirkti, pirkti straipsnius ir pan.
Prisijungimas yra gyvybiškai svarbi mūsų programos dalis, jis leidžia mums atskirti privatųjį nuo viešo, leidžia mums žinoti, kokį profilį turi kiekvienas įeinantis vartotojas, ir taip nuspręsti, ką jie gali matyti ar ne.
Kad mūsų programa turėtų šią funkciją, mums reikia veiksmo valdiklyje, kuris leidžia mums autentifikuoti vartotoją, lyginant jo vartotojo vardą ir slaptažodį su tuo, ką turime duomenų bazėje, tada kai tai atsitiks, sesijoje turime išsaugoti kai kurias vertes leidžia mums visada žinoti, kas yra prisijungęs ir kokį profilį bei leidimus turi, žinoma, pastarieji labai priklauso nuo mūsų programos dizaino.
Iki šiol mes turime žinoti, kaip sukurti valdiklį ir viską, kas susiję su pultu bėgiai, todėl tiesiogiai pamatysime valdiklį ir jo turinį, taip pat jo logiką:
 def prisijungti, jei request.get? seansas [: 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 [: pranešimas] = "Netinkamas vartotojo / slaptažodžio derinys" pabaigos pabaiga 

Pirmoje dalyje su mūsų valdiklio IF sąlyga prašome prašymasJei tai yra GET, mes išvalome sesiją ir sukuriame naują vartotojo tipo objektą, tokiu būdu paruošiame įėjimo būdą. Jei ne, Gaukite prašymas mes manome, kad tai yra POST, tada perduodame formos parametrus savo objektui ir tada iškviečiame metodą try_to_loginŠis metodas leidžia palyginti vartotojo vardą ir slaptažodį su tuo, ką turime duomenų bazėje.
Galiausiai su kita sąlyga matome, ar vartotojas iš tikrųjų buvo prisijungęs, mes priskiriame sesijai reikšmes ir tada nukreipiame vartotoją į indeksą, kitaip parodome klaidą su pranešimu.
Kaip matėme valdiklyje, vadiname kai kuriuos metodus, leidžiančius atlikti atitinkamus palyginimus, dabar mums reikia sukurti šiuos metodus, ir mes tai padarysime pagal modelį, pažiūrėkime, kas jame yra ir kodėl jis yra tai:
 def self.login (vardas, slaptažodis) hashed_password = hash_password (slaptažodis || "") find (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (savęs vardas, savęs slaptažodis) pabaiga 

Metodas Prisijungti tai paprasta, jis gauna du parametrus: vardą ir slaptažodį, tada klausia duomenų bazės dėl šių verčių.
Metodas try_to_login, tai yra prisijungimo metodas, tokiu būdu mes galime atsakyti vartotojui, ar jis yra mūsų duomenų bazėje, ar ne.
Galiausiai sukuriame savo vaizdą ir veiksmus, kuriuos jis naudos, faile programa / peržiūros / prisijungimas sukursime savo login.rhtml taip pat mūsų index.rhtml, pirmasis yra gana panašus į vartotojo konstrukciją, o antrasis - pamatysime dabar.

Iš viso užsakymų sistemoje:

Laukiantys užsakymai:


Kaip matome, tai gana paprasta, jis tiesiog parodys laukiančius vartotojo užsakymus, tam valdiklyje turime įtraukti reikiamus veiksmus:
 def index @total_orders = *****. count @pending_orders = *****. count_pending end 

Ten būtume pamatę rezultatą.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave