Tutorial Ruby on Rails
โก Rezumat inteligent
Tutorialul Ruby on Rails prezintฤ framework-ul web open-source scris รฎn Ruby care susศine Airbnb, GitHub ศi Shopify. Ghidul prezintฤ instalarea pe... Windows, Mac ศi Linux, generatoare Rails, rutare, vizualizฤri, ActiveRecord, validฤri ศi depanare.
Ce este Ruby?
Rubin este un limbaj de programare orientat pe obiecte, interpretat, de nivel รฎnalt. Este un limbaj open-source dinamic, cu o comunitate numeroasฤ รฎn spate. Ruby a fost conceput pentru simplitate ศi productivitate. รncurajeazฤ scrierea de cod software care pune pe primul loc omul ศi pe al doilea loc calculatorul. Yukihiro Matsumoto a creat Ruby รฎn Japonia รฎn 1995.
Ce este Rails?
Rails este un framework de dezvoltare scris รฎn Ruby pentru construirea de aplicaศii web. A fost creat ca fundaศie pentru aplicaศia Basecamp ศi apoi lansat ca software open-source รฎn 2004. Rails oferฤ multe caracteristici ศi funcศionalitฤศi standard รฎncorporate, ceea ce รฎl face o alegere potrivitฤ pentru prototipul MVP.ping ศi dezvoltarea rapidฤ a produselor.
Rails a fost creat de David Heinemeier Hansson, cunoscut sub numele de DHH. Este unul dintre cele mai influente ศi populare instrumente pentru construirea de aplicaศii web. Este utilizat de site-uri importante precum Airbnb, GitHub ศi Shopify.
De ce ศine?
รnainte de a instala lanศul de scule, este util sฤ รฎnศelegeศi de ce ศinele rฤmรขn o alegere popularฤ pentru naveping aplicaศii web rapid.
- Rails este ambalat ca o bijuterie Ruby ศi รฎl puteศi folosi pentru a construi o gamฤ largฤ de aplicaศii.
- รศi permite sฤ construieศti aplicaศii web obiศnuite, site-uri de comerศ electronic, sisteme de gestionare a conศinutului ศi multe altele.
- Rails este un framework full-stack care include tot ce ai nevoie pentru a crea o aplicaศie web bazatฤ pe baze de date folosind modelul Model-View-Controller (MVC).
- Toate straturile sunt proiectate sฤ funcศioneze perfect รฎmpreunฤ, aศa cฤ proiectele Rails necesitฤ de obicei mai puศine linii de cod decรขt proiectele echivalente din alte framework-uri.
Cum sฤ descฤrcaศi ศi sฤ instalaศi Ruby pe Windows
Procesul de instalare depinde de sistemul de operare. Urmฤtoarele secศiuni acoperฤ instalarea Ruby pe Windows, Mac ศi Linux.
Pas 1) Descฤrcaศi programul de instalare Ruby.
Cel mai simplu mod de a instala Ruby pe dvs Windows calculatorul se face prin intermediul programului de instalare Ruby, disponibil la https://rubyinstaller.org/.
Odatฤ descฤrcat, rulaศi programul de instalare.
Pas 2) Faceศi clic pe programul de instalare descฤrcat.
Double-faceศi clic pe fiศierul de instalare descฤrcat, de exemplu 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โ. Ar trebui sฤ vedeศi ecranul 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 ecranul de mai jos cรขnd se terminฤ.
Pas 5) Faceศi clic pe Finalizare.
Nu debifaศi opศiunea care instaleazฤ MSYS2. Faceศi clic pe โFinalizareโ pentru a finaliza instalarea. Se va deschide o fereastrฤ de comandฤ, aศa cum se aratฤ mai jos.
Pas 6) Instalaศi MSYS2.
Acest pas instaleazฤ MSYS2, o platformฤ de compilare care include un manager de pachete pentru instalarea uศoarฤ a pachetelor pe Windows.
Apฤsaศi Enter pentru a instala toate componentele, deoarece toate sunt necesare pentru un mediu de dezvoltare Ruby on Rails fฤrฤ probleme pe Windows.
Instalarea ศinelor
Ar trebui sฤ aveศi Ruby instalat conform secศiunii anterioare. Apoi, instalaศi Rails. Puteศi instala Rails folosind un pachet de la RailsInstaller, dar pachetul adesea nu livreazฤ cea mai recentฤ versiune a fiecฤrei dependenศe necesare.
Dacฤ aveศi deja instalatฤ cea mai recentฤ versiune de Ruby ศi versiunile de bazฤ RubyGems ศi extensiile, pur ศi simplu executaศi urmฤtoarea comandฤ din promptul de comandฤ pentru a instala 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ฤ un JavaRuntime-ul scriptului sฤ funcศioneze corect. Obศineศi Node la https://nodejs.org.
O abordare mai comunฤ ศi preferatฤ privind Windows este de a utiliza Windows Subsistem pentru Linux. Acesta oferฤ un mediu GNU/Linux cu instrumente de linie de comandฤ, utilitare ศi aplicaศii comune direct รฎn interior. Windows.
Instalarea Ruby pe Mac
Mac-ul tฤu are deja Ruby preinstalat. Cu toate acestea, versiunea preinstalatฤ este adesea รฎnvechitฤ, aศa cฤ ar trebui sฤ instalezi o versiune mai nouฤ.
Cea mai uศoarฤ modalitate de a face acest lucru este sฤ utilizaศi un manager de pachete, cum ar fi HomebrewEste posibil sฤ fie nevoie sฤ instalaศi mai รฎntรขi Homebrew rulรขnd comanda de mai jos รฎn Terminal.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Aceasta afiศeazฤ un avertisment ศi vฤ solicitฤ sฤ introduceศi parola. Introduceศi parola Mac-ului (caracterele nu apar pe mฤsurฤ ce tastaศi) ศi apฤsaศi Enter cรขnd aศi terminat. Apoi, executaศi aceastฤ comandฤ Homebrew pentru a instala Ruby pe Mac.
brew install ruby
Apoi executaศi aceastฤ comandฤ:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
Aceasta seteazฤ noua instalare Ruby ca Ruby implicit pe sistemul dvs., รฎn loc de Ruby preinstalat.
Pentru a confirma cฤ instalarea a avut succes, executaศi urmฤtoarele รฎn Terminal:
ruby --version
Aceasta afiศeazฤ numฤrul versiunii Ruby instalate. Rezultatul aratฤ cam aศa:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Instalarea Ruby pe Ubuntu (Linux)
Cea mai uศoarฤ metodฤ de a instala Ruby pe Ubuntu se face prin intermediul managerului de pachete apt. Rulaศi urmฤtoarele comenzi รฎn Terminal pentru a instala cea mai recentฤ versiune de Ruby de pe Ubuntu arhive.
- sudo apt update โ Aceasta actualizeazฤ setฤrile implicite Ubuntu arhive.
- sudo apt instaleazฤ ruby-full โ Aceasta descarcฤ ศi instaleazฤ cea mai recentฤ versiune de Ruby.
Pentru a confirma instalarea, rulaศi versiunea rubyAceasta afiศeazฤ versiunea de Ruby pe care aศi instalat-o.
Instalarea ศinelor pe Ubuntu (Linux)
Urmaศi paศii de mai jos pentru a instala Rails pe maศina dvs. Linux.
Pas 1) Actualizaศi managerul de pietre preศioase rulรขnd gem update -system รฎn Terminal sau รฎn linia de comandฤ.
Pas 2) Alerga ศine de instalare a gemelor pentru a instala cea mai recentฤ versiune de Rails pe computer.
Pas 3) Instalaศi gem-ul bundler pentru o gestionare uศoarฤ a dependenศelor gem-ului aplicaศiei Rails. Rulaศi bundler de instalare de pietre preศioase.
Douฤ principii ale ศinelor
Rails respectฤ principiile de bazฤ ale proiectฤrii software ศi te รฎncurajeazฤ sฤ le foloseศti ศi pe acestea.
Cele mai frecvente douฤ sunt:
- Nu te repeta (DRY) โ aceasta duce la un cod concis, consistent ศi uศor de รฎntreศinut.
- Convenศie asupra configuraศiei โ Rails este preconfigurat cu setฤri implicite practice care se potrivesc celei mai comune utilizฤri. Acest lucru face ca dezvoltarea aplicaศiilor sฤ fie rapidฤ ศi vฤ lasฤ cu mai puศin cod de รฎntreศinut.
Sine โ Structuri de fiศiere de proiect
Cu Rails instalat pe sistem, creaศi o aplicaศie Rails. Urmฤtoarele secศiuni prezintฤ un exemplu Ruby on Rails prin construirea unei aplicaศii cu listฤ de activitฤศi. Rulaศi urmฤtoarea comandฤ รฎn Terminal pentru a crea aplicaศia:
rails new todo_app
Aceastฤ comandฤ creeazฤ un director numit tot_app รฎn directorul curent cu structura de foldere de bazฤ a unei aplicaศii web Rails, aศa cum se aratฤ mai jos.
Iatฤ principalele directoare generate pentru proiect:
aplicaลฃia โ grupeazฤ subdirectoare pentru UI/layout (views ศi helpers), controller (fiศiere controller) ศi modele (logica de business/aplicaศie).
aplicaศie/controlere โ stocheazฤ fiศierele controller utilizate de Rails pentru a gestiona cererile de la client.
aplicaศie/active โ conศine fiศiere statice necesare front-end-ului aplicaศiei, grupate dupฤ tip: JavaScenariu fiศiere, imagini ศi foi de stil.
aplicaศie/ajutoare โ conศine funcศii auxiliare care menศin modelul aplicaศiei, vizualizarea ศi logica controlerului concentrate, mici ศi ordonate.
aplicaศie/modele โ conศine fiศiere care modeleazฤ baza de date a aplicaศiei. Clasele model faciliteazฤ foarte mult lucrul cu baza de date.
aplicaศie/vizualizฤri โ conศine fiศierele ศablon/layout cu care interacศioneazฤ utilizatorul aplicaศiei. ศabloanele combinฤ HTML cu date din baza de date.
bin โ conศine scripturi Rails care pornesc aplicaศia. Poate include ศi alte scripturi pe care le utilizaศi pentru a configura ศi actualiza aplicaศia.
config โ conศine fiศiere de configurare, cum ar fi baza de date.yml, mediu.rb, rute.rb, etc., de care aplicaศia dvs. are nevoie pentru a rula.
db โ conศine fiศiere ศi scripturi utilizate pentru gestionarea bazei de date a aplicaศiei.
lib โ conศine module extinse pentru aplicaศia dumneavoastrฤ.
log โ conศine fiศiere jurnal, cum ar fi server.log, development.log, test.log ศi production.log, utilizat pentru depanarea sau monitorizarea aplicaศiei.
public โ conศine fiศiere statice ศi resurse compilate, cum ar fi fiศiere HTML, JavaFiศiere script, imagini ศi foi de stil.
test โ conศine fiศiere de test pe care le scrieศi pentru a testa funcศionalitatea aplicaศiei.
tmp โ conศine fiศiere temporare precum fiศierele cache ศi pid.
vรขnzฤtor โ conศine biblioteci terศe.
Gemfile โ specificฤ cerinศele de bazฤ ale gem-urilor pentru a rula aplicaศia web. Puteศi grupa gem-urile รฎn dezvoltare, testare sau producศie, iar Rails va ศti cรขnd sฤ includฤ fiecare gem.
Gemfile.lock โ spre deosebire de Gemfile, care listeazฤ explicit gemurile dorite รฎn aplicaศia dvs., Gemfile.lock conศine suplimentar alte gemuri de care depind cele listate รฎn Gemfile. Acestea sunt instalate automat pentru a satisface dependenศele.
Readme.md โ foloseศte acest fiศier pentru a partaja detalii esenศiale despre aplicaศia ta, cum ar fi ce face aplicaศia ศi cum se instaleazฤ ศi se ruleazฤ.
Rakefile โ conศine diverse definiศii de sarcini rake care ajutฤ la automatizarea sarcinilor de administrare zilnice ale aplicaศiei tale.
config.ru โ un fiศier de configurare Rack care oferฤ o interfaศฤ cฤtre serverul web pentru a porni aplicaศia.
Schimbaศi directorul รฎn tot_app directorul Rails generat ศi rulat serverul Rails pentru a porni aplicaศia. Tip localhost: 3000 รฎn bara de adrese a browserului web. Ar trebui sฤ vedeศi ecranul de mai jos dacฤ totul a mers bine.
Aceasta este pagina principalฤ implicitฤ a aplicaศiei tale. O vei modifica รฎntr-o secศiune ulterioarฤ a acestui tutorial Ruby on Rails. Poศi opri serverul apฤsรขnd Ctrl + C.
ศine โ Generare comenzi
Comanda Rails generate foloseศte ศabloane pentru a crea multe lucruri utile รฎn aplicaศia ta. Aceste generatoare economisesc mult timp.
Ei scriu cod standard necesar pentru ca aplicaศia ta web sฤ funcศioneze. Executฤ ศinele genereazฤ singur la linia de comandฤ sau รฎn Terminal pentru a vedea o listฤ de generatoare disponibile, aศa cum se aratฤ mai jos.
De asemenea, puteศi rula ศinele genereazฤ pentru a vedea o descriere a ceea ce face comanda. Listeazฤ opศiuni convenabile ศi un exemplu de utilizare. Figura de mai jos prezintฤ rezultatul rulฤrii controler de generare a ศinelor.
Foloseศte comanda rails generate scaffold pentru a crea automat modelul, vizualizarea ศi controlerul pentru aplicaศia Listฤ de activitฤศi pe care o construieศti. Executฤ urmฤtoarele รฎn Terminal (asigurฤ-te cฤ eศti รฎncฤ รฎn tot_app director):
rails generate scaffold todo_list title:string description:text
Aceasta creeazฤ o interfaศฤ web CRUD (Creare, Citire, Actualizare, ศtergere) completฤ pentru tabelul TodoLists.
O altฤ comandฤ utilฤ de ศtiut este ศinele distrugInverseazฤ orice ศinele genereazฤ nu.
Sine โ Trasare
Sistemul de rutare Rails, numit router Rails, gestioneazฤ toate cererile primite cฤtre aplicaศia web. Acesta examineazฤ URL a fiecฤrei cereri ศi o mapeazฤ la acศiunea controlerului responsabilฤ de gestionarea acesteia, folosind sintaxa specificatฤ รฎn fiศierul rute (config/rute.rb).
Fiศierul de rute controleazฤ fiecare URL aspect al aplicaศiei web. Rails foloseศte un design RESTful bazat pe stilul arhitectural REST, care oferฤ o hartฤping รฎntre verbele HTTP ศi cerere URLs la acศiunile controlerului.
Fiศierul rute a fost generat cรขnd aศi rulat ศine noi mai devreme. Continuรขnd cu aplicaศia Todo pe care o construiศi, executaศi urmฤtoarele:
rails db:migrate
Asiguraศi-vฤ cฤ sunteศi รฎncฤ la rฤdฤcina aplicaศiei ( tot_app director).
Porniศi din nou serverul cu serverul Rails. Tip http://localhost:3000/todo_lists/ รฎn browser ศi apฤsaศi Enter. Ar trebui sฤ primiศi din nou o paginฤ web ca cea de mai jos.
Aceasta este vizualizarea listelor de activitฤศi generatฤ de comanda scaffold ศi este controlatฤ de TodoListsController. index acลฃiune.
Adฤugaศi o listฤ de activitฤศi fฤcรขnd clic pe โListฤ nouฤ de activitฤศiโ pe paginฤ. Ar trebui sฤ vedeศi ecranul de mai jos.
Observaศi URL este acum http://localhost:3000/todo_lists/newAceasta este pagina pentru a crea o nouฤ listฤ de activitฤศi ศi este controlatฤ de TodoListsController. nou metodฤ.
Introduceศi titlul ศi descrierea listei de sarcini รฎn formular ศi faceศi clic pe โCreaศi o listฤ de sarciniโ. URL ar trebui sฤ se schimbe รฎn http://localhost:3000/todo_lists/1, aศa cum se aratฤ mai jos.
Aceasta este pagina de afiศare a unei liste de activitฤศi, controlatฤ de TodoListsController. Arฤta metodฤ. Dacฤ te รฎntorci la http://localhost:3000/todo_lists/, ar trebui sฤ vedeศi acum ecranul de mai jos cu noua listฤ de activitฤศi adฤugatฤ.
Rails a reuศit sฤ mapeze fiecare cerere la acศiunea TodoListsController corespunzฤtoare folosind definiศia rutei din config/rute.rb.
Dacฤ te uiศi la acest fiศier, vei vedea o singurฤ linie resurse :todo_lists, care este modul implicit Rails de scriere a rutelor RESTful. Aceastฤ singurฤ linie creeazฤ ศapte rute, toate mapรขndping cฤtre controlerul TodoLists.
Prin convenศie, fiecare acศiune a controlerului se mapeazฤ la o operaศiune CRUD (Creare, Citire, Actualizare, ศtergere) specificฤ din baza de date.
Alerga rute feroviare รฎn linia de comandฤ pentru a vedea diferitele rute disponibile รฎn aplicaศia dvs. Figura de mai jos prezintฤ rezultatul rulฤrii rute feroviare.
ศine โ Vizualizฤri
Stratul de vizualizare este una dintre componentele paradigmei MVC ศi este responsabil pentru generarea rฤspunsului HTML pentru fiecare solicitare cฤtre aplicaศia dumneavoastrฤ. Rails foloseศte รฎn mod implicit ERB (Embedded Ruby), care este un sistem puternic de ศablonare pentru Ruby.
ERB faciliteazฤ scrierea ศi รฎntreศinerea ศabloanelor prin combinarea textului simplu cu cod Ruby pentru substituirea variabilelor ศi controlul fluxului. Un ศablon ERB foloseศte .html.erb extensie.
Veศi folosi รฎn mare parte douฤ marcaje de etichete, fiecare dintre acestea determinรขnd procesarea ศi gestionarea codului รฎncorporat รฎntr-un anumit mod.
O etichetฤ cu semnul egal <%= %> indicฤ faptul cฤ codul รฎncorporat este o expresie, iar rezultatul codului ar trebui รฎnlocuit รฎn ieศire atunci cรขnd ศablonul este redat.
Cealaltฤ etichetฤ fฤrฤ semn de egalitate <% %> indicฤ programului de redare cฤ rezultatul codului nu ar trebui รฎnlocuit sau afiศat รฎn ieศire.
Fiecare controler din aplicaศia dumneavoastrฤ Rails are un subdirector corespunzฤtor รฎn aplicaศie/vizualizฤri, iar fiecare acศiune dintr-un controler are un corespondent .html.erb fiศierul din subdirectorul respectiv.
Aruncati o privire la aplicaศie/vizualizฤri din aplicaศia Todo pe care o construiศi. Veศi gฤsi un subdirector numit liste_de_trebuie_sฤ_fate conศinรขnd .html.erb fiศiere cu nume corespunzฤtoare acศiunilor din TodoLists controler.
ศine โ ActiveRecord, Active Record Pattern ศi ORM
ActiveRecord este implementarea Ruby a modelului Active Record. รn acest model, o clasฤ reprezintฤ un tabel al bazei de date, iar o instanศฤ a clasei reprezintฤ un rรขnd din acel tabel.
ActiveRecord este denumit รฎn mod obiศnuit ORM (Object Relational Map)ping), o tehnicฤ ce vฤ permite sฤ gestionaศi baza de date folosind un limbaj cu care vฤ simศiศi cel mai confortabil. Este agnostic faศฤ de baza de date, aศa cฤ puteศi comuta cu uศurinศฤ รฎntre baze de date โ de exemplu, SQLite, MySQL, PostgreSQL, SQL Server sau Oracle โ folosind acelaศi cod ศi aceeaศi logicฤ.
De exemplu, pentru a obศine o matrice care conศine fiecare listฤ Todo din aplicaศia dvs., nu trebuie sฤ scrieศi cod care deschide o conexiune, ruleazฤ o interogare SQL SELECT ศi converteศte rezultatul.
Pur ศi simplu tastezi Lista de activitฤศi.toate, iar ActiveRecord returneazฤ matricea umplutฤ cu obiecte TodoList pe care le puteศi utiliza dupฤ cum doriศi.
Tot ce trebuie sฤ faci este sฤ configurezi configuraศia รฎn config/database.ymlศi ActiveRecord gestioneazฤ diferenศele dintre sistemele de baze de date. Cรขnd treceศi de la o bazฤ de date la alta, nu trebuie sฤ rescrieศi codul.
Te concentrezi pe logica aplicaศiei, iar ActiveRecord se ocupฤ de detaliile de nivel scฤzut ale conectฤrii la baza de date. Foloseศte convenศii de denumire pentru a mapa modelele la tabelele bazei de date.
Rails pluralizeazฤ numele claselor modelului pentru a gฤsi tabelul corespunzฤtor din baza de date. Aศadar, pentru o clasฤ TodoList, ActiveRecord utilizeazฤ un tabel de bazฤ de date numit liste_de_trebuie_sฤ_fate.
Sine โ Migraศii
O migrare Rails este un script pe care รฎl utilizaศi pentru a evolua baza de date a aplicaศiei. Este folosit pentru a configura sau modifica baza de date fฤrฤ a scrie manual cod SQL.
Foloseศte Ruby pentru a defini modificฤrile schemei bazei de date ศi face posibilฤ utilizarea controlului versiunilor pentru a menศine baza de date sincronizatฤ รฎntre medii.
Migrฤrile Rails utilizeazฤ un limbaj specific domeniului Ruby (DSL). Acesta acศioneazฤ ca un abstracศi face posibilฤ utilizarea sau modificarea motorului bazei de date รฎn funcศie de cerinศele dumneavoastrฤ.
Migrฤrile pot fi partajate cu oricine lucreazฤ la aplicaศie ศi pot fi, de asemenea, anulate pentru a anula modificฤrile. Acesta este un mecanism de siguranศฤ puternic, deci nu trebuie sฤ vฤ faceศi griji cu privire la deteriorarea permanentฤ a bazei de date.
Rails โ Asociaศii ActiveRecord
O conexiune รฎntre douฤ modele ActiveRecord este cunoscutฤ sub numele de asociere. Asocierile faciliteazฤ mult efectuarea operaศiunilor asupra รฎnregistrฤrilor corelate din cod. Existฤ patru categorii comune.
Unu la Unu: o รฎnregistrare conศine exact o instanศฤ a unui alt model. Un bun exemplu este un profil de utilizator โ un utilizator are un singur profil. Acesta foloseศte are_unul cuvinte cheie.
Unu la Multi: cea mai comunฤ asociere โ un model are zero sau mai multe instanศe ale unui alt model. Foloseศte are_multe cuvรขnt cheie pentru a desemna aceastฤ asociere.
De la mulศi la mulศi: un pic mai complicat. ActiveRecord oferฤ douฤ modalitฤศi de a gestiona acest lucru: are_ศi_aparศine_mulศi ศi are_multe :prin, care vฤ oferฤ acces la modelul de joncศiune definit รฎntr-un tabel separat.
Polimorfic de la unu la mai mulศi: o asociere mai avansatฤ รฎn Rails. Defineศte un model care poate aparศine mai multor modele diferite pe o singurฤ asociere.
Rails โ Validฤri ActiveRecord
Validarea ajutฤ la asigurarea faptului cฤ aveศi date corecte, deoarece lucrul cu date greศite este riscant ศi poate costa bani afacerii dumneavoastrฤ.
Validarea oferฤ, de asemenea, un nivel suplimentar de securitate รฎmpotriva utilizatorilor rฤu intenศionaศi care รฎncearcฤ sฤ introducฤ date dฤunฤtoare รฎn baza de date. Rails oferฤ o API curatฤ de instrumente de validare รฎn ActiveRecord care menศin baza de date curatฤ, securizatฤ ศi fฤrฤ erori.
Validฤrile ActiveRecord ruleazฤ pe obiectele modelului รฎnainte de salvarea รฎn baza de date, ceea ce le face mai fiabile ศi respectฤ cele mai bune practici.
Urmฤtoarele metode ActiveRecord declanศeazฤ validฤri atunci cรขnd sunt apelate pe obiecte de model: creaศi, creaศi!, salvaศi, salvaศi!, actualizaศi ศi actualizaศi!Versiunile Bang (creeazฤ!, salveazฤ! ศi actualizeazฤ!) ridicฤ o excepศie dacฤ รฎnregistrarea este invalidฤ, รฎn timp ce versiunile non-bang returneazฤ รฎn schimb false.
Cele mai comune instrumente de asistenศฤ pentru validarea ActiveRecord sunt:
- Confirmare: valideazฤ faptul cฤ douฤ cรขmpuri au aceeaศi valoare, de exemplu parola ศi confirmarea parolei. Se utilizeazฤ รฎmpreunฤ cu ajutorul ajutorului de validare a prezenศei.
- Prezenลฃฤ: verificฤ dacฤ cรขmpul nu este gol.
- unicitatea: asigurฤ o valoare unicฤ pentru un cรขmp, de exemplu numele de utilizator.
- Durata: impune o limitฤ asupra lungimii caracterelor unui cรขmp.
De asemenea, puteศi crea propria validare personalizatฤ utilizรขnd valida metodฤ ศi transmiศรขndu-i numele unei metode de validare personalizate.
Verificaศi modelul Erori obiect pentru a afla de ce a eศuat o validare. Aceasta vฤ oferฤ tot ce aveศi nevoie pentru a face aplicaศia mai restricศionatฤ ศi mai sigurฤ, permiศรขnd doar date valide sฤ intre รฎn baza de date.
Sine โ ActionController
Controlerul Rails este centrul aplicaศiei dvs. web. Faciliteazฤ ศi coordoneazฤ comunicarea dintre utilizator, modele ศi vederi.
Clasele tale de controler moศtenesc de la ApplicationController, care conศine cod ce poate fi rulat รฎn toate celelalte controlere ศi care, la rรขndul sฤu, moศteneศte de la ActionController::Base.
Controlerul oferฤ urmฤtoarele aplicaศii:
- Dirige cererile externe cฤtre acศiuni interne.
- Gestioneazฤ memoria cache, oferind รฎmbunฤtฤศiri de performanศฤ aplicaศiei tale.
- Gestioneazฤ metode auxiliare care extind capacitฤศile ศablonului de vizualizare ศi gestioneazฤ, de asemenea, sesiunile utilizatorilor, oferind utilizatorilor o experienศฤ fluidฤ.
ศine โ Configuraศii
Puteศi configura componente precum iniศializatoare, resurse, generatoare ศi middleware folosind iniศializatoarele ศi fiศierele de configurare ale aplicaศiei Rails din config director. Fiศiere precum config/aplicaศie.rb, config/environments/development.rb ศi config/environments/test.rb sunt utilizate aici. De asemenea, puteศi adฤuga setฤri personalizate pentru aplicaศia dvs.
Sine โ Depanare
Pe mฤsurฤ ce construieศti aplicaศia, va trebui sฤ depanezi codul. Rails faciliteazฤ acest lucru cu ajutorul adio gemฤ. Puteศi รฎncepe o sesiune de depanare plasรขnd cuvรขntul cheie adio oriunde รฎn codul aplicaศiei tale.
Aceasta opreศte temporar execuศia รฎn acel moment. Bijuteria byebug oferฤ mai multe comenzi. Cele mai utile sunt:
- Urmฤtorul: trece la urmฤtoarea linie de cod, sare pesteping toate metodele invocate de linia curentฤ.
- Etapa: similar urmฤtor, dar parcurge pas cu pas fiecare metodฤ invocatฤ.
- pauzฤ: opreศte execuศia codului.
- continua: continuฤ execuศia codului.
Sunt disponibile ศi alte comori de depanare, cum ar fi desfaceToate oferฤ funcศionalitฤศi similare cu o sintaxฤ uศor diferitฤ. Depanarea gem-urilor nu ar trebui utilizatฤ รฎn producศie, deoarece prezintฤ riscuri pentru aplicaศia dvs. ศi o experienศฤ negativฤ pentru utilizatori.
Fiศierele jurnal pot fi inspectate pentru erori รฎn producศie ศi gestionate รฎn consecinศฤ. De asemenea, ar trebui sฤ urmaศi o abordare de dezvoltare bazatฤ pe teste (TDD) atunci cรขnd construiศi aplicaศia pentru a vฤ asigura cฤ totul funcศioneazฤ corect รฎnainte de implementarea รฎn producศie.














