Tutorial Ruby on Rails
Ce este Ruby?
Rubin este un limbaj de programare de nivel รฎnalt, interpretat ศi orientat pe obiecte. Este un limbaj open-source dinamic, care are o comunitate grozavฤ รฎn spate. Ruby a fost conceput pentru simplitate ศi productivitate. รncurajeazฤ scrierea codului de software pentru om ศi computerul al doilea. A fost creat de Yukihiro Matsumoto รฎn Japonia รฎn 1995.
Ce este Rails?
Rails este un cadru de dezvoltare scris รฎn Ruby pentru construirea de aplicaศii web. A fost creat ca fundaศia aplicaศiei Basecamp ศi apoi lansat ca software open-source รฎn 2004. Rails oferฤ multe caracteristici ศi funcศionalitฤศi standard รฎncorporate, ceea ce o face o opศiune potrivitฤ pentru prototiparea ศi dezvoltarea MVP.
A fost creat de David Heinemeier Hasson cunoscut รฎn mod popular sub numele de DHH. Este unul dintre cele mai influente ศi populare instrumente pentru construirea de aplicaศii web. Este folosit de unele dintre site-urile preferate precum Airbnb, Github, Shopify etc.
De ce ศine?
Iatฤ avantajele/beneficiile utilizฤrii Rails:
- Rails este ambalat ca o bijuterie Ruby ศi รฎl puteศi folosi pentru a construi o varietate de aplicaศii.
- Vฤ permite sฤ creaศi aplicaศii web obiศnuite, aplicaศii de comerศ electronic, sistem de gestionare a conศinutului ศi multe altele.
- Rails este un cadru complet care include tot ce aveศi nevoie pentru a crea o aplicaศie web bazatฤ pe baze de date, folosind modelul Model-View-Controller.
- Aceasta รฎnseamnฤ cฤ toate straturile sunt construite pentru a funcศiona perfect รฎmpreunฤ cu mai puศin cod. Necesitฤ mai puศine linii de cod decรขt alte cadre.
Cum sฤ descฤrcaศi ศi sฤ instalaศi Ruby pe Windows
Procesul de instalare va depinde de sistemul dvs. de operare. Veศi trece prin instalarea Ruby pe Windows, Mac ศi Linux.
Pas 1) Descฤrcaศi Rubyinstaller
Cel mai simplu mod de a instala Ruby pe dvs Windows computerul este prin Ruby Installer, pe care รฎl puteศi descฤrca de la https://rubyinstaller.org/.
Tot ce trebuie sฤ faceศi este sฤ rulaศi programul de instalare descฤrcat.
Pas 2) Faceศi clic pe programul de instalare descฤrcat
Double- daศi clic pe programul de instalare descฤrcat โrubyinstaller-2.4.1-2-x64.exeโ.
Pas 3) Acceptaศi licenศa
Selectaศi butonul radio โAccept licenศaโ ศi faceศi clic pe butonul โUrmฤtorulโ. Acest lucru ar trebui sฤ vฤ aducฤ la urmฤtoarea figurฤ de mai jos:
Pas 4) Bifaศi primele douฤ casete de selectare
Bifaศi primele douฤ casete de selectare pentru a uศura rularea scripturilor Ruby.
Faceศi clic pe butonul โInstalareโ pentru a รฎncepe instalarea. Ar trebui sฤ vedeศi figura de mai jos cรขnd se terminฤ instalarea.
Pas 5) Faceศi clic pe Finalizare
Nu debifaศi opศiunea casetฤ de selectare care instaleazฤ MSYS2. Faceศi clic pe โFinalizareโ pentru a finaliza instalarea ศi va fi afiศatฤ o fereastrฤ de comandฤ prezentatฤ รฎn figura de mai jos.
Pas 6) Instaleazฤ MSYS2
Acest pas instaleazฤ MSYS2, o platformฤ de construcศie care include un manager de pachete pentru o instalare uศoarฤ a pachetelor Windows.
Apฤsaศi Enter pentru a instala toate componentele, deoarece toate sunt necesare pentru a avea un mediu de dezvoltare fluid Ruby on Rails cu care sฤ lucraศi Windows.
Instalarea ศinelor
Ar trebui sฤ aveศi Ruby instalat din secศiunea anterioarฤ, iar acum veศi instala Rails. Puteศi instala Rails folosind un pachet de la RailsInstaller, dar problema cu aceasta este cฤ nu obศineศi cea mai recentฤ versiune a pachetelor necesare.
Dacฤ aveศi deja cel mai recent Ruby ศi un set de bazฤ de RubyGems ศi extensii necesare instalate. Tot ce trebuie sฤ faceศi acum este sฤ rulaศi urmฤtoarea comandฤ la promptul de comandฤ pentru a obศine Rails pe sistemul dvs.: โgem install railsโ.
De asemenea, va trebui sฤ instalaศi Node.js dacฤ nu รฎl aveศi deja, deoarece unele biblioteci de care depinde Rails necesitฤ a Javascript runtime pentru a funcศiona corect. Puteศi obศine nodul la https://nodejs.org.
Este o abordare mai comunฤ ศi preferatฤ de dezvoltare Windows. Comunitatea Rails foloseศte a Windows Subsistem pentru Linux care oferฤ un mediu GNU/Linux cu instrumente de linie de comandฤ, utilitฤศi ศi aplicaศii comune direct pe Windows.
Instalarea Ruby pe Mac
Mac-ul tฤu are deja Ruby preinstalat pe el. Cu toate acestea, versiunea preinstalatฤ ar putea fi veche ศi, prin urmare, va trebui sฤ instalaศi o versiune nouฤ/cea mai recentฤ.
Cel mai simplu mod de a face acest lucru este folosirea unui manager de pachete, cum ar fi Homebrew. Este posibil sฤ trebuiascฤ mai รฎntรขi sฤ instalaศi Homebrew rulรขnd comanda de mai jos la terminal.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
Aceasta va afiศa un avertisment ศi vฤ va cere sฤ introduceศi parola. Introduceศi parola Mac (nu veศi vedea caracterele pe mฤsurฤ ce introduceศi). Doar apฤsaศi โEnterโ cรขnd aศi terminat de tastat parola. Apoi rulaศi aceastฤ comandฤ Homebrew simplฤ pentru a instala Ruby pe Mac.
brew install ruby
ศi, de asemenea, rulaศi aceastฤ comandฤ:
echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile
Pentru a seta aceastฤ instalare Ruby ca Ruby implicit pentru a rula pe sistemul dvs. ศi nu Ruby preinstalat.
Pentru a confirma cฤ instalarea a avut succes, puteศi rula urmฤtoarele la Terminal
ruby --version
aceasta va imprima numฤrul versiunii Ruby pe care l-aศi instalat. Ieศirea va arฤta ceva de genul
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Instalarea Ruby pe Ubuntu (Linux)
Cel mai simplu mod de a instala Ruby pe dvs Ubuntu sistemul este prin managerul de pachete apt. Trebuie sฤ rulaศi urmฤtoarele comenzi la Terminal pentru a instala cel mai recent Ruby de la Ubuntu arhive.
- actualizare sudo apt โ Aceasta va actualiza valoarea implicitฤ Ubuntu arhive
- sudo apt install ruby-full โ Acesta va descฤrca ศi va instala cel mai recent Ruby
Pentru a confirma cฤ instalarea a avut succes, puteศi rula urmฤtoarele โversiunea rubinโ, aceasta va imprima versiunea Ruby pe care aศi instalat-o.
Instalarea ศinelor pe Ubuntu (Linux)
Ar trebui sฤ urmaศi paศii de mai jos pentru a instala cu succes Rails pe computerul dvs. Linux.
Pas 1) Actualizaศi managerul de pietre preศioase pe computer rulรขnd โsistem de actualizare a gemeiโ la Terminal sau promptul de comandฤ.
Pas 2) Alerga โศine de instalare a pietreiโ pentru a instala cea mai recentฤ versiune de Rails pe computer.
Pas 3) Ar trebui sฤ instalaศi bundler gem pentru gestionarea uศoarฤ a dependenศei de gem aplicaศia Rails. Alerga โbundler de instalare de pietre preศioaseโ sฤ-l.
Douฤ principii ale ศinelor
ศinele urmeazฤ principiile de bazฤ de proiectare a software-ului ศi vฤ รฎncurajeazฤ sฤ utilizaศi ศi acele principii.
Cele mai frecvente douฤ sunt:
- Nu vฤ repetaศi (DRY) โ acest lucru vฤ face sฤ scrieศi cod concis, consecvent ศi care poate fi รฎntreศinut.
- Convenศie asupra configuraศiei โ Rails este pre-configurat pentru a utiliza valori implicite sensibile care se potrivesc celei mai frecvente utilizฤri. Acest lucru face ca dezvoltarea aplicaศiei dvs. sฤ fie rapidฤ ศi, de asemenea, aveศi mai puศin cod de รฎntreศinut.
Sine โ Structuri de fiศiere de proiect
Cu Rails instalat acum pe sistemul dvs., vฤ permitem sฤ creaศi o aplicaศie Rails! Vom รฎnvฤศa exemple Ruby on Rails ศi cum sฤ creaศi o aplicaศie Lista de activitฤศi รฎn acest tutorial Ruby on Rails. Rulaศi urmฤtoarea comandฤ โsine noua aplicaศie todo_appโ รฎn terminalul dvs. pentru a crea aplicaศia.
Aceastฤ comandฤ creeazฤ un director numit โtodo_appโ รฎn directorul curent cu structura de bazฤ de foldere a unei aplicaศii web Rails, aศa cum se aratฤ รฎn figura de mai jos:
Veศi parcurge directoarele principale din acest exemplu Ruby on Rails.
aplicaลฃia โ Acest director grupeazฤ folosind diferite subdirectoare pentru UI/aspect (vizualizฤri ศi ajutoare), controler (fiศiere controlere) ศi modele (logica de afaceri/aplicaศie).
aplicaศie/controlere โ Acest director stocheazฤ fiศierele controler utilizate de Rails pentru a gestiona cererile de la client.
aplicaศie/active โ Conศine fiศiere statice, ceea ce este o nevoie pentru front-end-ul aplicaศiei grupate รฎn foldere รฎn funcศie de tipul lor โ JavaScenariu fiศiere, imagini ศi foi de stil.
aplicaศie/ajutoare โ Acest subdirector conศine funcศii de ajutor care fac modelul aplicaศiei, vizualizarea ศi logica controlerului sฤ fie concentrate, mici ศi neaglomerate.
aplicaศie/modele โ Acesta conศine fiศiere
care modeleazฤ baza de date a aplicaศiei dvs. Clasele model faciliteazฤ foarte mult lucrul cu baza de date.
aplicaศie/vizualizฤri โ Aceste fiศiere ศablon/aspect de reศinere cu care interacศioneazฤ utilizatorul aplicaศiei dvs. ศabloanele sunt o combinaศie de HTML ศi date din baza de date.
cos - Conศine scripturi Rails care porneศte aplicaศia. De asemenea, poate include ศi alte scripturi pe care le utilizaศi pentru a configura ศi actualiza aplicaศia.
Configurare - Acesta deศine fiศierele de configurare - baza de date.yml, mediu.rb, rute.rb, etc. pe care aplicaศia dvs. trebuie sฤ ruleze.
DB โ Acest director conศine fiศiere/script-uri care sunt utilizate pentru a gestiona baza de date a aplicaศiei.
lib โ Acest director conศine un modul extins pentru aplicaศia dvs.
Buturuga - Acesta conศine fiศiere jurnal โ server.log, development.log, test.log ศi production.log, etc., care sunt utilizate pentru depanarea sau monitorizarea aplicaศiei dvs.
public - Acest director conศine fiศiere statice ศi materiale compilate, cum ar fi fiศiere HTML, Javascript fiศiere, imagini ศi foi de stil.
Test - Acest director conศine fiศiere de testare pe care le scrieศi pentru a testa funcศionalitatea aplicaศiei.
tmp - Acest director conศine fiศiere temporare precum fiศierele cache ศi pid.
vรขnzฤtor โ Acest director conศine biblioteci terศฤ parte.
Gemfile โ Acest fiศier specificฤ care sunt cerinศele tale de bazฤ pentru bijuteriile pentru a rula aplicaศia web. Puteศi grupa pietrele รฎn dezvoltare, testare sau producศie, iar Rails va ศti cรขnd sฤ includฤ fiecare bijuterie.
Gemfile.lock โ Spre deosebire de Gemfile care listeazฤ รฎn mod explicit pietrele preศioase pe care le doriศi รฎn aplicaศia dvs., Gemfile.lock conศine รฎn plus ศi alte pietre preศioase de care depind cele pe care le enumeraศi รฎn Gemfile ศi care sunt apoi instalate automat pentru a satisface dependenศele.
Readme.md โ Utilizaศi acest fiศier pentru a partaja detalii esenศiale despre aplicaศia dvs., cum ar fi ceea ce face aplicaศia, cum sฤ instalaศi ศi sฤ rulaศi aplicaศia.
Rakefile โ Acest fiศier conศine diverse definiศii de sarcini rake, care ajutฤ la automatizarea sarcinilor de administrare de zi cu zi ale aplicaศiei dvs.
config.ru โ Acesta este un fiศier de configurare Rack care oferฤ o interfaศฤ serverului web pentru a porni aplicaศia.
Schimbaศi directorul รฎn โtodo_appโ directorul Rails generat ศi rulat โserver ศineโ pentru a porni aplicaศia. Tip localhost: 3000 รฎn bara de adrese a browserului dvs. web, ar trebui sฤ vedeศi figura de mai jos dacฤ totul a mers bine.
Aceasta este pagina de pornire implicitฤ a aplicaศiei dvs. ศi o veศi schimba รฎn secศiunea ulterioarฤ a acestui tutorial Ruby on Rails. Puteศi opri serverul apฤsรขnd โCtrl-Cโ.
Rails โ Generaศi comenzi
Comanda Rails generate foloseศte ศabloane pentru a crea o mulศime de lucruri utile รฎn aplicaศia dvs. Puteศi folosi aceste generatoare pentru a economisi mult timp.
Ajutฤ prin scrierea codului standard, cod care este necesar pentru ca aplicaศia dvs. web sฤ funcศioneze. Poศi sฤ alergi "ศine genereazฤ" singur la promptul de comandฤ sau la Terminal pentru a vedea o listฤ de generatoare disponibile, dupฤ cum se aratฤ mai jos:
De asemenea, puteศi rula โศinele genereazฤ โcomandฤโโ pentru a vedea o descriere a ceea ce face comanda. Oferฤ opศiuni convenabile care pot fi rulate cu exemplul de comandฤ ศi utilizare. Figura de mai jos aratฤ rezultatul rulฤrii"ศinele genereazฤ controler":
Veศi folosi comanda rails generate scaffold pentru a crea automat modelul, vizualizarea ศi controlerul pentru aplicaศia pe care o construiศi. Alerga' ศinele genereazฤ schele todo_list title:string description: text' รฎn terminalul dvs. (verificaศi cฤ sunteศi รฎncฤ รฎn directorul todo_app).
Aceasta va crea o interfaศฤ web completฤ CRUD (Creare, citire, actualizare ศi ศtergere) pentru tabelul TodoLists.
O altฤ comandฤ utilฤ de ศtiut este โศinele distrugโ, inverseazฤ orice โศinele genereazฤโฆโ nu.
ศine โ trasare
Sistemul de rutare Rails, routerul ศine, gestioneazฤ toate solicitฤrile primite cฤtre aplicaศia dvs. web. Face acest lucru examinรขnd adresa URL a cererilor primite ศi apoi mapeazฤ fiecare cerere la acศiunea controlerului responsabilฤ cu gestionarea acesteia, folosind sintaxa specialฤ specificatฤ รฎn fiศierul rute (config/rute.rb).
Fiศierul rute ajutฤ la controlul fiecฤrui aspect URL al aplicaศiei dvs. web. Rails utilizeazฤ รฎn mod implicit un design RESTful bazat pe stilul arhitectural REST, care oferฤ o mapare รฎntre verbele HTTP ศi solicitฤrile (URL-uri) la acศiunile controlerului.
Fiศierul rute a fost generat cรขnd aศi rulat "ศine noi" รฎntr-o secศiune anterioarฤ a acestui tutorial. Continuรขnd cu aplicaศia Todo pe care o construiศi, rulaศi urmฤtoarele' ศine db:migrate' (vei afla ce face asta รฎn curรขnd)
รn linia de comandฤ, asiguraศi-vฤ cฤ sunteศi รฎncฤ la rฤdฤcina aplicaศiei (directorul todo_app).
Apoi porniศi din nou serverul cu โserver ศineโ. Tip http://localhost:3000/todo_lists/ รฎn browser ศi apฤsaศi Enter. Ar trebui sฤ primiศi รฎnapoi o paginฤ web, aศa cum se aratฤ รฎn figura de mai jos a exemplului Ruby on Rails:
Aceasta este vizualizarea Listelor de activitฤศi generatฤ de comanda scaffold ศi este controlatฤ de acศiunea de index a lui TodoListsController.
Continuaศi ศi adฤugaศi o listฤ de lucruri fฤcรขnd clic pe โNew To Listโ de pe paginฤ, ar trebui sฤ obศineศi pagina aศa cum se aratฤ mai jos:
Observaศi cฤ adresa URL este schimbatฤ รฎn http://localhost:3000/todo_lists/new. Aceasta este pagina pentru a crea o nouฤ listฤ de lucruri ศi este controlatฤ de noua metodฤ/acศiune a TodoListsController.
Introduceศi titlul ศi descrierea listei dvs. de activitฤศi รฎn formular ศi faceศi clic pe butonul Creaศi lista de activitฤศi, adresa URL ar trebui sฤ se schimbe รฎn http://localhost:3000/todo_lists/1, prezentat รฎn figura de mai jos a exemplului de cod Ruby on Rails:
Aceasta este pagina de afiศare a unei liste de activitฤศi ศi este controlatฤ de metoda/acศiunea de afiศare a lui TodoListsController. Dacฤ te รฎntorci la http://localhost:3000/todo_lists/, ar trebui sฤ vedeศi acum figura de mai jos cu o nouฤ listฤ de lucruri adฤugate:
Rails a reuศit sฤ mapeze diferitele solicitฤri (URL-uri) la acศiunea corespunzฤtoare a TodoListsController folosind definiศia rutei din config/routes.rb.
Dacฤ aruncaศi o privire la acest fiศier, vedeศi o singurฤ linie โresurse: todo_listsโ, este modalitatea implicitฤ Rails de a scrie rute odihnitoare. Aceastฤ singurฤ linie creeazฤ ศapte rute, toate mapate cฤtre controlerul TodoLists.
Prin convenศie, acศiunea fiecฤrui controler se mapeazฤ ศi la o anumitฤ operaศie CRUD (Creare, Read, Update, and Delete) din baza de date.
Poศi alerga "rute de grebla" รฎn linia de comandฤ pentru a vedea diferitele rute disponibile รฎn aplicaศia dvs. Figura de mai jos aratฤ rezultatul rulฤrii "rute ferate" รฎn linia/terminalul dumneavoastrฤ de comandฤ.
Sine โ vederi
Stratul View este una dintre componentele paradigmei MVC ศi este responsabil pentru generarea de rฤspuns HTML pentru fiecare solicitare cฤtre aplicaศia dvs. Rails utilizeazฤ implicit ERB (Embedded Ruby), care este un sistem puternic de ศabloane pentru Ruby.
ERB face ศabloanele de scriere uศor ศi uศor de รฎntreศinut prin combinarea textului simplu cu codul Ruby pentru รฎnlocuirea variabilelor ศi controlul fluxului. Un ศablon ERB are extensia .html, .erb sau .erb.
รn mare parte, veศi folosi doar o combinaศie de doi markeri de etichetฤ, fiecare dintre acestea determinรขnd ca codul รฎncorporat sฤ fie procesat ศi gestionat รฎntr-un anumit mod.
O etichetฤ cu semnul egalului โ<%= %>โ indicฤ faptul cฤ codul รฎncorporat este o expresie ศi cฤ rezultatul codului ar trebui sฤ fie รฎnlocuit de renderer atunci cรขnd redฤ ศablonul.
Cealaltฤ etichetฤ fฤrฤ semn de egalitate โ<% %>โ indicฤ operatorului de redare cฤ rezultatul codului nu trebuie รฎnlocuit/tipฤrit atunci cรขnd redฤ ศablonul.
Fiecare controler din aplicaศia dumneavoastrฤ Rails are un subdirector corespunzฤtor รฎn aplicaศie/vizualizฤri, iar fiecare acศiune/metodฤ dintr-un controler are un fiศier .html ศi .erb corespunzฤtor รฎn acest director.
Aruncฤ o privire la aplicaศia/vizualizฤrile aplicaศiei todo pe care o construieศti. Veศi gฤsi un subdirector numit โliste de totโ รฎn interiorul acestui subdirector .html.erb fiศiere cu nume corespunzฤtoare acศiunilor/metodelor din TodoLists controler.
ศine โ ActiveRecord, Active Record Pattern ศi ORM
ActiveRecord este implementarea Ruby a modelului Active Record, care este un model simplu รฎn care o clasฤ reprezintฤ un tabel, iar o instanศฤ a clasei reprezintฤ un rรขnd รฎn acea clasฤ.
ActiveRecord este denumit รฎn mod popular ORM (Object Relational Mapping), o tehnicฤ care vฤ permite sฤ vฤ gestionaศi baza de date folosind o limbฤ cu care vฤ simศiศi cel mai confortabil. Este independent de baze de date, astfel รฎncรขt puteศi comuta cu uศurinศฤ รฎntre baze de date (de exemplu SQLite, MySQL, PostgreSQL, SQL Server, Oracle, etc.). Aceastฤ suitฤ este mai potrivitฤ pentru cerinศele aplicaศiei dvs. cu acelaศi cod/logicฤ.
Deci, dacฤ doriศi sฤ obศineศi o matrice care sฤ conศinฤ o listฤ a tuturor listelor de lucruri din aplicaศia dvs., deci, รฎn loc sฤ scrieศi cod pentru a iniศia o conexiune la baza de date, faceศi un fel de interogare SQL SELECT ศi convertiศi acele rezultate รฎntr-o matrice.
Pentru asta, trebuie doar sฤ tastaศi โTodoList.allโ iar Active Record vฤ oferฤ matricea plinฤ cu obiecte TodoList cu care vฤ puteศi juca dupฤ cum doriศi.
Tot ce trebuie sฤ faceศi este sฤ configuraศi configuraศia corectฤ config/database.yml, iar Active Record va rezolva toate diferenศele dintre diferitele sisteme de baze de date. Aศa cฤ atunci cรขnd treci de la unul la altul, nu trebuie sฤ te gรขndeศti la asta.
Vฤ concentraศi pe scrierea codului pentru aplicaศia dvs., iar Active Record se va gรขndi la detaliile de nivel scฤzut ale conectฤrii dvs. la baza de date. Active Record foloseศte convenศiile de denumire pentru a crea maparea dintre modele ศi tabelele bazei de date.
Rails pluralizeazฤ numele claselor modelului pentru a gฤsi tabelul corespunzฤtor al bazei de date. Deci, pentru o clasฤ TodoList, ActiveRecord va crea un tabel de bazฤ de date numit TodoLists.
Sine โ Migraศii
Migrarea ศinelor este pur ศi simplu un script pe care รฎl utilizaศi pentru a edita baza de date a aplicaศiei. Este folosit pentru a configura sau modifica baza de date ศi evitฤ scrierea manualฤ a codului SQL pentru a face asta.
Foloseศte Ruby pentru a defini modificฤrile la schema bazei de date ศi face posibilฤ utilizarea controlului versiunilor pentru a menศine baza de date sincronizatฤ.
Rails Migrations utilizeazฤ un Ruby Domain Specific Language (DSL). Aceasta acศioneazฤ ca o abstractizare ศi face posibilฤ utilizarea sau modificarea motorului bazei de date รฎn funcศie de cerinศele dumneavoastrฤ.
Acestea pot fi partajate cu oricine lucreazฤ la aplicaศie ศi pot fi, de asemenea, anulate pentru a anula orice modificฤri aduse bazei de date. Acesta este un mecanism de รฎnaltฤ siguranศฤ, deoarece nu trebuie sฤ vฤ deranjaศi sฤ faceศi daune permanente bazei de date.
Rails โ Asociaศii ActiveRecord
O conexiune รฎntre douฤ modele ActiveRecord este cunoscutฤ ca o asociere. Asocierea face mult mai uศoarฤ efectuarea de operaศiuni asupra diferitelor รฎnregistrฤri din codul dvs. Poate fi รฎmpฤrศit รฎn patru categorii: -
Unu la unu: โ Aceasta indicฤ faptul cฤ o รฎnregistrare conศine exact o instanศฤ a altui model. Un bun exemplu este profilul utilizatorului. Un utilizator are un singur profil. Foloseศte are unul cuvinte cheie.
De la unul la mulศi: โ Aceasta este cea mai comunฤ asociere ศi indicฤ faptul cฤ un model are zero sau mai multe instanศe ale altui model. Utilizarea ta are un _multe cuvรขnt cheie pentru a desemna aceastฤ asociere.
Multe la Multe: โ Aceastฤ asociere este puศin mai complicatฤ, iar ActiveRecord oferฤ douฤ moduri de a o gestiona. Folosind are_ศi_aparศine_mulศi ศi are multe, care vฤ oferฤ acces la relaศia care este definitฤ รฎntr-un tabel separat.
Polimorfe Unu la Multi:- Aceasta este o asociere mai avansatฤ disponibilฤ pentru tine รฎn Rails. รl puteศi folosi pentru a defini un model care poate aparศine mai multor modele diferite รฎntr-o singurฤ asociere.
Rails โ Validฤri ActiveRecord
Validarea vฤ ajutฤ sฤ vฤ asiguraศi cฤ aveศi date corecte, deoarece lucrul cu date greศite este un lucru รฎngrozitor ศi vฤ poate costa banii ศi afacerea.
Validarea oferฤ, de asemenea, un nivel suplimentar de securitate pentru aplicaศia dvs. รฎmpotriva utilizatorilor rฤu intenศionaศi prin obศinerea accesului la informaศiile din baza de date. Rails vฤ oferฤ un API frumos de ajutoare de validare รฎn ActiveRecord pentru a vฤ menศine baza de date curatฤ, sigurฤ ศi fฤrฤ erori.
Validฤrile ActiveRecord ruleazฤ pe obiectele model รฎnainte de salvarea รฎn baza de date, fฤcรขndu-le mai fiabile ศi, de asemenea, cele mai bune practici de urmat รฎn construirea aplicaศiei.
Urmฤtoarele metode ActiveRecord evocฤ validฤri atunci cรขnd sunt utilizate sau apelate pe obiecte model โ creaศi, creaศi!, salvaศi, salvaศi!, actualizaศi ศi actualizaศi!. Cei cu breton (creeazฤ!, salveazฤ! ศi actualizaศi!) ridicฤ o excepศie dacฤ o รฎnregistrare este invalidฤ รฎn timp ce nu.
Cei mai obiศnuiศi ajutoare de validare ActiveRecord la dispoziศia dumneavoastrฤ sunt: โโ-
Confirmare:โ Acest ajutor de validare este util pentru validarea a douฤ cรขmpuri care au aceeaศi intrare. de exemplu, parola ศi confirmarea parolei, este utilizatฤ รฎmpreunฤ cu ajutorul de validare a prezenศei.
Prezenลฃฤ:โ Se verificฤ dacฤ cรขmpul nu este gol.
unicitate: asigurฤ o valoare unicฤ pentru un cรขmp, de exemplu, numele de utilizator
Lungime:- Pentru a impune o limitฤ a lungimii caracterelor unui cรขmp
De asemenea, puteศi crea validarea personalizatฤ utilizรขnd metoda de validare ศi transmiศรขndu-i numele metodei de validare personalizatฤ.
Puteศi verifica modelul eroare obiect pentru a afla de ce o validare. Sperฤm cฤ aveศi cรขteva idei pentru a face aplicaศia dvs. mai restrรขnsฤ ศi mai securizatฤ pentru a permite numai date securizate รฎn baza de date.
Sine โ ActionController
Controlerul Rails este centrul aplicaศiei dvs. web. Faciliteazฤ ศi coordoneazฤ comunicarea dintre utilizator, modele ศi vederi.
Clasele dvs. de controlere moศtenesc de la ApplicationController, care conศine cod care poate fi rulat รฎn toate celelalte controlere ศi moศteneศte din clasa ActionController.
Controlerul oferฤ urmฤtoarele aplicaศii:
- Acesta direcศioneazฤ solicitฤrile externe cฤtre acศiunile interne
- Reuศeศte sฤ pฤstreze รฎn cache, oferind creศteri de performanศฤ aplicaศiei dvs
- Gestioneazฤ metode de ajutor care extind capacitฤศile ศabloanelor de vizualizare. De asemenea, gestioneazฤ sesiunile utilizatorilor, oferindu-le o experienศฤ uศoarฤ รฎn utilizarea aplicaศiei dvs.
ศine โ Configuraศii
Puteศi configura diferitele componente, cum ar fi iniศializatoare, active, generatoare, middleware, etc. Utilizรขnd iniศializatorii aplicaศiei Rails ศi fiศierele de configurare din directorul de configurare. Fiศiere precum config/application.rb, config/environments/development.rb ศi config/environments/test.rb etc. De asemenea, puteศi configura setฤri personalizate pentru aplicaศia dvs.
Sine โ Depanare
Pe mฤsurฤ ce vฤ construiศi aplicaศia, va veni un moment รฎn care va trebui/va trebui sฤ vฤ depanaศi codul. ศinele fac acest lucru uศor folosind bijuteria byebug. Puteศi รฎncepe o sesiune de depanare punรขnd cuvรขntul cheie โbyebegโ oriunde รฎn codul aplicaศiei.
Acest lucru va opri temporar execuศia รฎn acel moment. Bijuteria byebug vฤ oferฤ mai multe comenzi de utilizat. Cele mai utile sunt:
- urmฤtor: comandฤ care vฤ permite sฤ mergeศi la urmฤtoarea linie de cod, sฤrind peste toate metodele invocate de execuศia liniei curente.
- pas: aceasta este similarฤ cu comanda โnextโ, dar vฤ va face sฤ pฤศiศi รฎn fiecare invocat.
- rupe: aceasta opreศte execuศia codului.
- continua continuฤ codul de execuศie.
Existฤ ศi alte pietre preศioase de depanare, cum ar fi โpryโ, ศi toate oferฤ funcศionalitฤศi similare, dar o sintaxฤ uศor diferitฤ. Pietrele preศioase de depanare nu ar trebui utilizate รฎn producศie, deoarece acest lucru prezintฤ riscuri pentru aplicaศia dvs. ศi experienศฤ proastฤ pentru utilizatorii aplicaศiei dvs.
Existฤ fiศiere jurnal pe care le puteศi inspecta pentru erori รฎn producศie ศi le puteศi gestiona. De asemenea, ar trebui sฤ urmaศi o abordare TDD (dezvoltare bazatฤ pe teste) atunci cรขnd vฤ dezvoltaศi aplicaศia, pentru a vฤ asigura cฤ totul funcศioneazฤ bine รฎnainte de implementarea รฎn producศie.
Rezumat
- Ruby este un limbaj de programare pur orientat pe obiecte
- Ruby are o sintaxฤ elegantฤ, uศor de citit ศi de scris.
- Rails este un cadru de dezvoltare, scris รฎn Ruby, pentru construirea de aplicaศii web
- Procesul de instalare va depinde de sistemul dvs. de operare.
- Rails este ambalat ca o bijuterie Ruby ศi รฎl puteศi folosi pentru a construi o varietate de aplicaศii.
- Veศi crea o aplicaศie Lista de activitฤศi รฎn acest tutorial, rulaศi followincomm'n'n' 'rails netoda'p'p'p' รฎn terminalul dvs. pentru a crea aplicaศia.
- Comanda Rails generate foloseศte ศabloane pentru a crea o mulศime de lucruri utile รฎn aplicaศia dvs.
- Sistemul de rutare Rails, routerul ศine vฤ ajutฤ sฤ gestionaศi toate solicitฤrile primite cฤtre aplicaศia dvs. web.
- Stratul View este una dintre componentele paradigmei MVC ศi este responsabil pentru generarea de rฤspuns HTML pentru fiecare solicitare cฤtre aplicaศia dvs.
- ActiveRecord este implementarea Ruby a modelului Active Record.
- Migrarea ศinelor este pur ศi simplu un script pe care รฎl utilizaศi pentru a edita baza de date a aplicaศiei.
- O conexiune รฎntre douฤ modele ActiveRecord este cunoscutฤ ca o asociere.
- Validarea vฤ ajutฤ sฤ vฤ asiguraศi cฤ aveศi date corecte, deoarece lucrul cu date greศite este un lucru รฎngrozitor ศi vฤ poate costa banii ศi afacerea.
- Controlerul Rails vฤ ajutฤ sฤ facilitaศi ศi sฤ coordonaศi comunicarea dintre utilizator, modele ศi vederi.
- Rail vฤ ajutฤ sฤ configuraศi diferitele componente, cum ar fi iniศializatoare, active, generatoare, middleware etc.













