Construiți datele de conectare ale aplicației Ruby on Rails

Cuprins
În aplicațiile noastre web va trebui aproape întotdeauna să înregistrăm utilizatori, în acest fel vom avea membri ai magazinelor noastre, bloguri, comunități virtuale, sisteme administrative etc. Pentru ca înregistrarea să fie eficientă și utilă, atunci acești utilizatori trebuie să se poată autentifica pentru a putea introduce părți care au fost create pentru utilizatorii înregistrați, cum ar fi vizualizarea profilului lor, gestionarea mesajelor lor, efectuarea achizițiilor, scrierea articolelor etc.
Conectarea este partea vitală a aplicației noastre, ne permite să separăm privatul de public, ne permite să știm ce profil are fiecare utilizator care intră și astfel să decidem ce poate vedea sau nu.
Pentru ca aplicația noastră să aibă această funcționalitate, avem nevoie de o acțiune în controler care să ne permită autentificarea utilizatorului prin compararea numelui său de utilizator și a parolei cu ceea ce avem în baza de date, atunci odată ce acest lucru se întâmplă, trebuie să salvăm în sesiune câteva valori care ne permit să știm în permanență cine este conectat și ce profil și permisiuni au, desigur că acestea din urmă depind foarte mult de proiectarea aplicației noastre.
Până acum trebuie să știm cum să generăm un controler și tot ce ține de consolă șine, așa că vom vedea direct controlerul și conținutul acestuia, precum și logica din spatele acestuia:
 autentificare def dacă request.get? session [: user_id] = zero @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] = "Combinație utilizator / parolă nevalidă" end end end 

În prima parte, cu condiționalitatea IF a controlerului nostru, solicităm cerereDacă este GET, curățăm sesiunea și creăm un nou obiect de tip utilizator, astfel pregătim modul de intrare. Dacă nu OBȚINEȚI cerere presupunem că este POST, apoi trecem parametrii formularului la obiectul nostru și apoi apelăm metoda try_to_login, ceea ce face această metodă este să facem comparații între numele de utilizator și parola cu ceea ce avem în baza de date.
În cele din urmă, cu un alt condițional, vedem dacă utilizatorul a fost autentificat, atribuim valori sesiunii și apoi îl redirecționăm către index, altfel afișăm o eroare cu un mesaj.
După cum am văzut în controler, numim câteva metode care ne permit să facem comparațiile corespunzătoare, acum ceea ce avem nevoie este să creăm aceste metode și pentru asta o vom face în model, să vedem ce conține și de ce conține aceasta:
 def self.login (nume, parolă) hashed_password = hash_password (parolă || "") găsi (: primul ,: condiții => ["nume =? și hashed_password =?", nume, hashed_password]) final def try_to_login User.login (self.name, self.password) sfârșit 

Metoda Autentificare este simplu, primește doi parametri: nume și parolă, apoi interogă în baza de date pentru aceste valori.
Metoda try_to_login, ceea ce face este să invocăm metoda de autentificare, în acest fel putem da un răspuns utilizatorului dacă există sau nu în baza noastră de date.
În cele din urmă, creăm vizualizarea noastră și acțiunile pe care le va folosi, în fișier aplicație / vizualizări / autentificare ne vom crea login.rhtml și, de asemenea, index.rhtml, primul este destul de similar cu construcția utilizatorului și acest al doilea îl vom vedea acum.

Total comenzi în sistem:

Comenzi în așteptarea expedierii:


După cum putem vedea, este destul de simplu, va afișa pur și simplu comenzile în așteptare ale utilizatorului, pentru aceasta în controler trebuie să încorporăm acțiunile necesare:
 def index @total_orders = *****. count @pending_orders = *****. count_pending end 

Acolo am fi văzut rezultatul.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave