alexpchin/Rails_Generating_and_Scaffolding.md

Utilizarea de către Rails a unor convenții stricte de denumire înseamnă că o mulțime de coduri de bază AR TREBUI să fie în același format indiferent cine le scrie? Ar putea fi scris de un prieten, de un coleg sau de un computer… nu ar trebui să conteze pentru că aceleași reguli Rails se aplică tuturor.

Aceasta înseamnă că Rails poate face de fapt unele sarcini pentru dumneavoastră!Poate construi lucruri și scrie cod în numele dumneavoastră….

Venind de la un alt limbaj precum PHP, acest lucru poate părea magic.

Referințe rapide:

rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references

##Rails generatorComanda rails generate folosește șabloane concepute prin convenție pentru a crea o mulțime de lucruri utile. Rularea comenzii rails generate de una singură oferă o listă de generatoare disponibile:

rails generate

sau pentru super-hackeri:

rails g

Există o mulțime de generatoare:

Rails:

  • assets
  • controller
  • generator
  • helper
  • integration_test
  • mailer
  • migration
  • model
  • .

  • observer
  • performance_test
  • resource
  • scaffold
  • scaffold_controller
  • session_migration
  • task

Coffee:

  • coffee:assets

Jquery:

  • jquery:install

Js:

  • js:assets

##Scaffolding in Rails

Instrumentul scaffolding din Rails este o modalitate rapidă de a genera unele dintre cele mai importante bucăți de cod dintr-o aplicație. Acest lucru economisește o mulțime de timp atunci când doriți să începeți să funcționați rapid! (Este super tare!)

În funcție de ceea ce doriți să creați, scaffolding-ul poate genera automat toate sau o combinație de:

migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript

Ar mai putea fi câteva fișiere pe care le face… Nu sunt sigur că este o listă completă!”

##Scaffolding a whole resource

Schelezi lucrurile asociate cu un obiect (singular)

Dacă vrei să schelezi o aplicație, trebuie să schelezi fiecare resursă din acea aplicație. Dacă doriți să faceți o aplicație de blogging, de exemplu – ați putea structura întreaga resursă Post:

rails g scaffold Post

Numele resursei Post trebuie să fie:

  • UpperCamelCase
  • SINGULAR

Acest nume va fi numele modelului, de exemplu, Post. Acesta va fi, de asemenea, numele clasei controlerului (dar la plural), de exemplu PostsController ȘI numele tabelului (dar la plural), de exemplu posts

După numele clasei, puteți adăuga coloanele tabelului și tipurile de date ale acestora.

rails g scaffold Post name:string title:string content:text

Numele acestor coloane de tabel ar trebui să fie:

  • lower_snake_case
  • SINGULAR

Acest lucru se datorează faptului că fiecare articol Post este menit să aibă o valoare stocată în fiecare coloană.

Dacă ați rula acest eșafodaj, acesta ar crea toate aceste fișiere:

În cadrul PostController, toate metodele RESTful vor fi create și toate vor avea fișierele de vizualizare corespunzătoare.

După crearea fișierului de migrare, pentru a face modificarea bazei de date nu uitați să rulați:

rake db:migrate

##Generarea doar a unui controler

Acesta controlează o mulțime de obiecte (deci este la plural)

Câteodată, doriți să generați doar un controler.

rails g controller Comments

Numele controlerului trebuie să fie:

  • UpperCamelCase
  • PLURALIZED

Acest lucru se datorează faptului că un controler se ocupă de o mulțime de exemple ale unui obiect, deci ar trebui să fie la plural.

Aceasta va crea aceste fișiere:

Aceasta NU va crea un fișier de migrare sau un fișier de model.

##Generarea doar a unui model

Generați conturul unui obiect (singular)

Dacă doriți să creați doar un model, puteți face:

rails g model Comment
  • UpperCamelCase
  • SINGULAR

De asemenea, puteți adăuga numele coloanelor la acesta dacă doriți:

rails g model Comment commenter:string body:text article:references

Aceste nume de coloane de tabel ar trebui să fie:

  • Camelon_mai mic
  • SINGULAR

Generarea unui model va crea aceste fișiere:

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.