Byg vores Ruby on Rails -applikationslogin

Indholdsfortegnelse
I vores webapplikationer bliver vi næsten altid nødt til at registrere brugere, på denne måde har vi medlemmer af vores butikker, blogs, virtuelle fællesskaber, administrative systemer osv. For at registreringen skal være effektiv og nyttig, skal disse brugere være i stand til at godkende sig selv for at kunne indtaste dele, der er blevet oprettet til registrerede brugere, f.eks. At se deres profil, styre deres meddelelser, foretage indkøb, skrive artikler osv.
Log-in er den vitale del af vores applikation, det giver os mulighed for at adskille det private fra det offentlige, det giver os mulighed for at vide, hvilken profil hver bruger, der kommer ind, har og dermed beslutte, hvad de kan se eller ej.
For at vores applikation skal have denne funktionalitet, har vi brug for en handling i controlleren, der giver os mulighed for at godkende brugeren ved at sammenligne hans brugernavn og adgangskode med det, vi har i databasen, så når dette sker, skal vi gemme nogle værdier i sessionen nogle værdier der giver os mulighed for hele tiden at vide, hvem der er logget ind, og hvilken profil og tilladelser de har, selvfølgelig afhænger sidstnævnte meget af design af vores applikation.
Nu må vi vide, hvordan vi genererer en controller og alt, der er relateret til konsollen skinner, så vi vil direkte se controlleren og dens indhold samt logikken bag:
 def login hvis request.get? session [: user_id] = nul @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] = "Ugyldig bruger / adgangskodekombination" slutende ende 

I den første del med IF -betingelsen for vores controller beder vi om anmodningHvis det er GET, renser vi sessionen og opretter et nyt bruger-type objekt, på denne måde forbereder vi vejen til at komme ind. Hvis ikke FÅ anmodning vi antager, at det er POST, så sender vi formparametrene til vores objekt og kalder derefter metoden try_to_login, hvad denne metode gør, er at sammenligne brugernavn og adgangskode med det, vi har i databasen.
Endelig med en anden betinget ser vi, om brugeren faktisk var logget ind, vi tildeler værdier til sessionen, og derefter omdirigerer vi brugeren til indekset, ellers viser vi en fejl med en besked.
Som vi så i controlleren kalder vi nogle metoder, der giver os mulighed for at foretage de tilsvarende sammenligninger, nu er det, vi har brug for, at oprette disse metoder, og til dette skal vi gøre det i modellen, lad os se, hvad den indeholder, og hvorfor den indeholder det:
 def self.login (navn, adgangskode) hashed_password = hash_password (password || "") find (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) slut 

Metoden Log på det er enkelt, det modtager to parametre: navn og adgangskode, så spørger det mod databasen om disse værdier.
Metoden try_to_login, hvad den gør er at påberåbe sig loginmetoden, på denne måde kan vi give et svar til brugeren, hvis den findes eller ej i vores database.
Endelig skaber vi vores visning og de handlinger, den vil bruge, i filen app / visninger / login vi vil skabe vores login.rhtml og også vores index.rhtml, den første ligner ganske meget brugerens konstruktion, og den anden vil vi se nu.

Samlede ordrer i systemet:

Ordrer afventende afsendelse:


Som vi kan se, er det ganske enkelt, det viser simpelthen brugerens afventende ordrer, for dette i controlleren skal vi indarbejde de nødvendige handlinger:
 def index @total_orders = *****. count @pending_orders = *****. count_pending end 

Der ville vi have set resultatet.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave