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.













