Scaffolding în Ruby on Rails se referă la generarea automată a unui set de un model, vizualizări și un controler utilizat de obicei pentru un singur tabel de bază de date.

De exemplu, puteți genera automat un controler, un model și vizualizări gata de utilizare cu o interfață web CRUD (Create, Read, Update, Delete) completă pentru tabelul Story folosind următoarea comandă:

$rails generate scaffold Story title:string content:text

Este mult mai ușor să faceți acest lucru, în loc să codificați totul singur, vă economisește mult timp!

Eșafodaj sau modele?

În comparație cu eșafodajul care generează tot ceea ce aveți nevoie (și nu aveți nevoie), modelele creează doar câteva componente conexe. Cel mai bun mod, și preferatul meu, de a explica diferența dintre scaffold și modele este folosind următorul exemplu:

Generați modele

După ce introduceți comanda

$rails generate model Story title:string content:text

veți genera:

invoke active_record va lega modelul dvs. de baza de date, în timp ce următoarea linie creează un fișier de migrare. Migrațiile sunt utilizate pentru a vă modifica schema bazei de date. Acest fișier de migrare creează tabelul bazei de date numit „stories” și coloanele bazei de date pentru „title” și „content”.

A treia linie va crea un model – o clasă Ruby care moștenește Active Record. Cu aceasta, fiecare metodă care poate fi apelată în Active Record poate fi acum apelată în modelul dumneavoastră. Ultimele trei linii creează fișiere de testare aferente pentru modelul dumneavoastră.

În timp ce scaffolding-ul vă va pune în funcțiune rapid, este puțin probabil ca codul pe care îl generează să se potrivească perfect pentru aplicația dumneavoastră. Cel mai probabil, veți dori să personalizați codul generat. Mulți dezvoltatori Rails experimentați evită complet scaffolding-ul, preferând să scrie tot sau cea mai mare parte a codului lor sursă de la zero. Puteți citi mai multe despre acest lucru pe RailsGuides.

După cum puteți vedea, generate models nu creează niciun fel de vizualizare pentru a afișa informații pe o pagină. Pentru a avea o aplicație completă, gata de utilizare, ar trebui să:

  • generate controllers (care la rândul său generează și vizualizări) sau
  • generate scaffold (care generează modelul, vizualizările, controlerul și scrie în fișierul routes.rb).

Dacă vă răzgândiți și decideți să folosiți scaffold după ce ați generat deja modelul, puteți rula oricând

$rails generate scaffold <name>

Acesta va crea toate fișierele lipsă.

Generate scaffold

Dacă introduceți comanda

$rails generate scaffold Story title:string content:text

va genera următoarele fișiere:

După ce testele legate de model sunt create, următoarea linie va genera rutele de resurse pentru povestirile dumneavoastră. După generarea rutelor de resurse vine controlerul și acțiunile sale (index, show, new, edit, create, update și destroy), împreună cu vizualizările și testele controlerului pentru fiecare dintre aceste acțiuni.

Routerul Rails recunoaște URL-urile și le conectează la o acțiune a controlerului. În mod implicit, acțiunea unui controler va reda o vizualizare cu același nume.

Migrație

De fiecare dată când creați o migrație folosind scripturi (generare model/generare schelet), o nouă migrație este adăugată în directorul corect. Folosiți

$rake db:migrate

pentru a verifica care sunt migrațiile care nu au fost adăugate în baza de date.

Destroy

Toată lumea este liberă să editeze și să facă modificările necesare pentru ca aplicația lor să funcționeze așa cum a fost concepută, chiar dacă asta înseamnă să elimine complet scaffold-ul. Puteți elimina eșafodajul în felul următor:

  1. Generați eșafodajul:
    $rails generate scaffold Story
  2. Dacă v-ați migrat fișierele, efectuați un rollback:
    $rake db:rollback
  3. Distrugeți sau anulați eșafodajul:
    $rails destroy scaffold Story

Făcând acest lucru, veți șterge toate fișierele create de eșafodaj, dar modificările suplimentare pe care este posibil să le fi făcut manual nu vor fi eliminate.

Concluzie

Un eșafodaj este excelent de utilizat atunci când vine vorba de exemple simple, machete rapide sau testări. Cu toate acestea, asigurați-vă că vă generați propriile modele atunci când vă decideți să dezvoltați o nouă aplicație. Nu uitați să vă testați întotdeauna aplicația, aflați cum să o faceți folosind Capybara!

Sperăm că ați descoperit ceva nou astăzi!

Publicat anterior la https://kolosek.com/rails-scaffold/

.

Tags

Înscrieți-vă la Hacker Noon

Creați-vă un cont gratuit pentru a vă debloca experiența de lectură personalizată.

Lasă un răspuns

Adresa ta de email nu va fi publicată.