Izveidojiet mūsu pieteikšanos Ruby on Rails

Satura rādītājs
Mūsu tīmekļa lietojumprogrammās mums gandrīz vienmēr būs jāreģistrē lietotāji, tādā veidā mums būs mūsu veikalu, emuāru, virtuālo kopienu, administratīvo sistēmu u.c. Lai reģistrācija būtu efektīva un lietderīga, šiem lietotājiem ir jāspēj autentificēties, lai varētu ievadīt daļas, kas ir izveidotas reģistrētiem lietotājiem, piemēram, apskatīt viņu profilu, pārvaldīt savus ziņojumus, veikt pirkumus, rakstīt rakstus utt.
Pieteikšanās ir mūsu lietojumprogrammas būtiska sastāvdaļa, tā ļauj mums nodalīt privāto no publiskās, ļauj uzzināt, kāds profils ir katram lietotājam, kurš ienāk, un tādējādi izlemt, ko viņš var redzēt vai nē.
Lai mūsu lietojumprogrammai būtu šī funkcija, mums ir nepieciešama darbība kontrollerī, kas ļauj mums autentificēt lietotāju, salīdzinot viņa lietotājvārdu un paroli ar to, kas mums ir datu bāzē; tad, kad tas notiek, sesijā ir jāsaglabā dažas vērtības kas ļauj mums vienmēr zināt, kurš ir pieteicies un kāds profils un atļaujas viņiem ir, protams, pēdējais ir ļoti atkarīgs no mūsu lietojumprogrammas dizaina.
Tagad mums ir jāzina, kā ģenerēt kontrolieri un visu, kas saistīts ar konsoli sliedes, tāpēc mēs tieši redzēsim kontrolieri un tā saturu, kā arī loģiku aiz tā:
 def login, ja request.get? sesija [: user_id] = nulle @lietotājs = User.new cits @lietotājs = User.new (parametri [: lietotājs]) logged_in_user = @user.try_to_login if logged_in_user session [: user_id] = logged_in_user.id redirect_to (: action => "index") else flash [: paziņojums] = "Nederīga lietotāja / paroles kombinācija" beigu beigas 

Pirmajā daļā ar mūsu kontroliera IF nosacījumu mēs lūdzam pieprasījumuJa tas ir GET, mēs iztīrām sesiju un izveidojam jaunu lietotāja tipa objektu, tādā veidā mēs sagatavojam ievadīšanas veidu. Ja nē, GET pieprasījumu mēs pieņemam, ka tas ir POST, tad mēs nododam veidlapas parametrus savam objektam un pēc tam izsaucam metodi try_to_login, šī metode ļauj salīdzināt lietotājvārdu un paroli ar to, kas mums ir datu bāzē.
Visbeidzot, izmantojot citu nosacījumu, mēs redzam, vai lietotājs patiešām bija pieteicies, mēs sesijai piešķiram vērtības un pēc tam novirzām lietotāju uz indeksu, pretējā gadījumā mēs parādām kļūdu ar ziņojumu.
Kā mēs redzējām kontrolierī, mēs saucam dažas metodes, kas ļauj mums veikt atbilstošus salīdzinājumus, tagad mums ir jāizveido šīs metodes, un tāpēc mēs to darīsim modelī, redzēsim, ko tā satur un kāpēc tā satur tas:
 def self.login (vārds, parole) hashed_password = hash_password (parole || "") find (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) beigas 

Metode Pieslēgties tas ir vienkārši, tas saņem divus parametrus: vārdu un paroli, pēc tam vaicā datu bāzē par šīm vērtībām.
Metode try_to_login, tas izsauc pieteikšanās metodi, tādā veidā mēs varam sniegt atbildi lietotājam, vai tā pastāv vai nav mūsu datu bāzē.
Visbeidzot, mēs izveidojam savu skatu un darbības, kuras tas izmantos failā lietotne / skatījumi / pieteikšanās mēs izveidosim savu login.rhtml un arī mūsu index.rhtml, pirmais ir diezgan līdzīgs lietotāja uzbūvei, un šo otro mēs redzēsim tagad.

Kopējais pasūtījumu skaits sistēmā:

Pasūtījumi, kas gaida piegādi:


Kā redzam, tas ir pavisam vienkārši, tas vienkārši parādīs neapstiprinātos lietotāja rīkojumus, jo tam kontrolierim ir jāiekļauj nepieciešamās darbības:
 def indekss @total_orders = *****. count @pending_orders = *****. count_pending end 

Tur mēs būtu redzējuši rezultātu.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave