Изградете нашето влизане в приложението Ruby on Rails

Съдържание
В нашите уеб приложения почти винаги ще трябва да регистрираме потребители, по този начин ще имаме членове на нашите магазини, блогове, виртуални общности, административни системи и т.н. За да бъде ефективна и полезна регистрацията, тези потребители трябва да могат да се автентифицират, за да могат да въвеждат части, създадени за регистрирани потребители, като например преглеждане на техния профил, управление на техните съобщения, извършване на покупки, писане на статии и т.н.
Входът е жизненоважната част от нашето приложение, позволява ни да отделим частното от публичното, позволява ни да знаем какъв профил има всеки потребител, който влиза, и по този начин да решим какво да вижда или не.
За да може нашето приложение да има тази функционалност, се нуждаем от действие в контролера, което ни позволява да удостоверяваме потребителя, като сравняваме неговото потребителско име и парола с това, което имаме в базата данни, а след като това се случи, трябва да запишем в сесията някои стойности които ни позволяват да знаем по всяко време кой е влязъл и какъв профил и разрешения имат, разбира се, последното зависи много от дизайна на нашето приложение.
Вече трябва да знаем как да генерираме контролер и всичко свързано с конзолата релси, така че директно ще видим контролера и неговото съдържание, както и логиката зад него:
 def вход, ако request.get? сесия [: 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] = "Невалидна комбинация потребител / парола" end end end 

В първата част с условието IF на нашия контролер искаме заявкаАко е GET, почистваме сесията и създаваме нов обект от потребителски тип, като по този начин подготвяме начина за въвеждане. Ако не ВЗЕМЕТЕ заявка приемаме, че е POST, след това предаваме параметрите на формуляра на нашия обект и след това извикваме метода try_to_login, този метод прави сравненията на потребителското име и паролата с това, което имаме в базата данни.
Накрая с друго условие виждаме дали потребителят действително е бил влязъл, присвояваме стойности на сесията и след това пренасочваме потребителя към индекса, в противен случай показваме грешка със съобщение.
Както видяхме в контролера, ние наричаме някои методи, които ни позволяват да правим съответните сравнения, сега това, от което се нуждаем, е да създадем тези методи и за това ще го направим в модела, нека видим какво съдържа и защо съдържа то:
 def self.login (име, парола) hashed_password = hash_password (парола || "") find (: first ,: conditions => ["name =? and hashed_password =?", name, hashed_password]) end def try_to_login User.login (self.name, self.password) край 

Методът Влизам то е просто, получава два параметъра: име и парола, след което запитва в базата данни за тези стойности.
Методът try_to_login, това, което прави, е да извика метода за вход, по този начин можем да дадем отговор на потребителя, ако той съществува или не в нашата база данни.
Накрая създаваме нашия изглед и действията, които ще използва, във файла app / views / login ние ще създадем нашите login.rhtml както и нашия index.rhtml, първият е доста подобен на конструкцията на потребителя и този втори ще видим сега.

Общо поръчки в системата:

Поръчки в очакване на доставка:


Както виждаме, той е доста прост, той просто ще покаже чакащите поръчки на потребителя, за това в контролера трябва да включим необходимите действия:
 def index @total_orders = *****. count @pending_orders = *****. count_pending край 

Там щяхме да видим резултата.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave