Rusilează șinele de ghidare a liniei de comandă

Linia de comandă Rails

După ce ați citit acest ghid, veți învăța

  • Cum se creează o aplicație pe Rails
  • Cum se generează modele, controale, migrații de date și teste unitare
  • Cum se pornește serverul pentru dezvoltare
  • Cum să experimentați cu obiecte dintr-o coajă interactivă

Acest tutorial presupune că aveți cunoștințe despre elementele de bază ale Rails, care pot fi găsite în Ghidul Rails Beginner's.







1. Elementele de bază ale liniei de comandă

Există mai multe comenzi care sunt absolut critice pentru utilizarea zilnică în Rails. În funcție de frecvența posibilă de utilizare, acestea sunt după cum urmează:

  • consola rails
  • rails server
  • bin / șine
  • șinele generează
  • rails dbconsole
  • șinează nou nume_aplicație

Puteți rula fiecare comandă cu -h sau --help pentru a afișa informații detaliate.

Să creați o aplicație simplă Rails pentru a examina toate aceste comenzi în context.

1.1. șine noi

În primul rând, dorim să creăm o nouă aplicație pe Rails prin rularea unei noi comenzi după instalarea Rails.

Șinele Hem pot fi instalate scriind șine de montaj pentru bijuterii. dacă nu există deja.

Rails va crea o mulțime de tot cu ajutorul unei echipe atât de mici! Acum aveți structura finalizată a directorului Rails cu tot codul necesar pentru a rula aplicația noastră simplă.

1.2. rails server

Comanda serverului de șine rulează serverul web Puma livrat cu Ruby. O vom folosi ori de câte ori dorim să ne vedem munca într-un browser web.

Fără nicio constrângere, serverul de șine va lansa aplicația noastră strălucitoare pe Rails:

Pentru a porni serverul, puteți utiliza și pseudonimul "s": șine.

Serverul poate fi pornit pe un port diferit, utilizând opțiunea -p. Mediul implicit poate fi modificat utilizând -e.

Opțiunea -b leagă Rails de un anumit IP, în mod implicit este localhost. Puteți porni serverul ca un daemon prin trecerea opțiunii -d.

1.3. șinele generează

Șinele de comandă utilizează șabloane pentru a crea o grămadă de lucruri. Run generatoare de șine vor afișa o listă de generatoare disponibile:

De asemenea, puteți folosi aliasul "g" pentru a apela comanda de generare. șinele g.

Puteți instala mai mulți generatori cu pietre de generatoare, părți de plug-in-uri pe care le veți instala cu siguranță, și chiar puteți crea propriile dvs.!

Utilizarea generatoarelor poate economisi o mulțime de timp scriind pentru dvs. un cod de șablon - necesar ca aplicația să funcționeze.

Să creăm propriul controler folosind generatorul de controler. Ce comanda trebuie sa folosesc? Să cerem generatorului:

Toate utilitățile consolei Rails au text de ajutor. Ca și în cazul celor mai multe utilitare * nix, puteți încerca --help sau -h la sfârșitul paginii, de exemplu, serverele rails --help.

Generatorul de controler așteaptă parametrii din formularul de generare a controlerului ActionName action1 action2. Să creăm un controlor de salut cu acțiunea bună. care ne va spune ceva plăcut.

Să verificăm controlerul și să îl schimbăm puțin (în app / controllers / greetings_controller.rb):

Apoi, pentru a afișa mesajul nostru (în app / views / greetings / hello.html.erb):

Rulați serverul folosind serverul de șine.

Rails are, de asemenea, un generator pentru modele de date.

Lista tipurilor de câmpuri disponibile pentru parametrul de tip poate fi găsită în documentația API pentru metoda add_column a modulului SchemaStatements. Parametrul index generează indicele corespunzător pentru coloană.

Generatorul a verificat că există directoare pentru modelele, controlere, ajutoare, machete, teste funcționale și unitare, stylesheets create controler vyuha, modelul și migrarea bazei de date pentru highscore (high_scores creează tabele și câmpuri), a avut grijă de ruta pentru resursa. și a creat noi teste pentru toate acestea.

Să vorbim despre testele unității. Testele unității sunt coduri care testează și fac declarații despre cod. În unitatea de testare, luăm o bucată de cod, să spunem, o metodă model, și testați intrările și ieșirile. Testele unice sunt prietenii tăi. Cu cât înțelegeți mai devreme că calitatea vieții va crește, atunci când vă testați codul cu o unitate de teste, cu atât mai bine. Serios. Vizitați Ghidul de testare pentru un studiu mai aprofundat al unității de testare.

Să aruncăm o privire la interfața pe care Rails a creat-o pentru noi.

1.4. consola rails

Comanda consola vă permite să interacționați cu aplicația pe șine de la linia de comandă. Practic, consola pentru șine folosește IRB, deci, dacă l-ați folosit vreodată, vă veți simți confortabil. Acest lucru este util pentru testarea ideilor rapide cu cod și editarea datelor pe server fără a atinge site-ul web.

Pentru a apela consola, puteți utiliza și aliasul "c": șinele c.

Puteți specifica mediul în care ar trebui să funcționeze comanda consolei.







Dacă trebuie să testați un anumit cod fără a modifica date, puteți face acest lucru apelând consola de șine --sandbox.

1.4.1. Aplicația și obiectele ajutorului

În interiorul consolei șinelor, puteți accesa instanțele aplicației și ale ajutorului.

Utilizând metoda aplicației, sunt disponibile agenți de ajutor pentru url și cale și puteți face și interogări.

Utilizând metoda helper, puteți accesa asistența Rails și aplicația dvs.

1.5. rails dbconsole

rails dbconsole determină ce bază de date este folosită și te mută la o interfață de linie de comandă unde o poți folosi (și specifică și parametrii liniei de comandă care urmează să fie trecuți!). Acesta susține MySQL (inclusiv MariaDB), PostgreSQL și SQLite3.

Pentru a apela consola bazei de date, puteți utiliza și aliasul "db": șine db.

1.6. raul alergător

conducătorul șinelor execută codul Ruby în contextul non-interactivității lui Rails. De exemplu:

Puteți folosi, de asemenea, pseudonimul "r" pentru a apela alerga: șine r.

Puteți defini mediul în care se va executa comanda alergătorului. folosind comutatorul -e:

Cu ajutorul alergătorului, puteți rula chiar și codul ruby ​​scris în fișier.

1.7. șinele distrug

De asemenea, puteți folosi aliasul "d" pentru a apela comanda distrugere: șine d.

2. bin / șine

Începând cu Rails 5.0+, comenzile rake sunt construite în șinele executabile, bin / rails execută acum comenzile implicite.

Puteți obține o listă de sarcini bin / șine disponibile, care depind adesea de directorul dvs. curent, scriind bin / rails --help. Fiecare activitate are o descriere care vă ajută să găsiți ceea ce aveți nevoie.

Pentru a obține o listă de sarcini, puteți utiliza și bin / rails -T.

2.1. despre

bin / șine cu privire la furnizarea de informații cu privire la numărul Ruby versiune, RubyGems, șine, subcomponentele, dosarul cererii dumneavoastră, numele mediului Rails actual, baza de date a adaptorului aplicației și versiunea schemă. Acest lucru este util când trebuie să solicitați ajutor, verificați patch-urile de securitate care ar putea afecta dvs. sau doriți doar să cunoașteți statisticile despre instalarea curentă a sistemului Rails.

2.2. bunuri

Puteți precompune active în aplicație / active. folosind activele bin / șine: precompilați. și ștergeți aceste active compilate folosind active bin / șine: curat. Activele: sarcina curată vă permite să întoarceți depozitele care pot fi asociate cu vechile Active, în timp ce noile Active sunt create.

Dacă doriți să clarificați complet / activele. puteți utiliza activele bin / șine: clobber.

Cele mai obișnuite sarcini din spațiul de nume bin / rails db namespace sunt migrate și create. dar ar trebui să încercați și restul sarcinilor de migrare bin / rails (up.,., redo, reset). bin / rails db: versiunea este utilă pentru depanare, prezentând versiunea curentă a bazei de date.

Mai multe detalii despre migrații sunt scrise în Ghidul migrației.

2.4. notițe

Puteți adăuga suport pentru o nouă extensie de fișier folosind opțiunea config.annotations.register_extensions. care primește o listă de extensii cu expresia regulată corespunzătoare.

Dacă căutați o adnotare specifică, spune FIXME, utilizați note bin / șine: fixme. Rețineți că numele adnotării este utilizat în litere mici.

De asemenea, puteți utiliza adnotări arbitrare în codul dvs. și le puteți extrage utilizând note bin / șine: personalizate. prin definirea adnotării utilizând variabila de mediu ANNOTATION.

Când utilizați adnotări specifice și arbitrare, numele adnotării (FIXME, BUG, ​​etc.) nu este afișat în liniile de rezultate.

Implicit, notele despre șine vor fi căutate în directoarele aplicațiilor. config. db. lib și test. Dacă doriți să căutați în alte directoare, le puteți configura utilizând opțiunea config.annotations.register_directories.

De asemenea, le puteți oferi ca listă separată prin virgulă în variabila de mediu SOURCE_ANNOTATION_DIRECTORIES.

2.5. rute

calea de șine afișează o listă a tuturor rutelor definite, care este utilă pentru urmărirea problemelor de rutare în aplicația dvs. sau pentru a oferi o imagine de ansamblu bună a adresei URL a aplicației pe care încercați să o accesați.

Rails vine cu o suită de testare numită Minitest. Șinele rămân stabile datorită utilizării testelor. Sarcini disponibile în testul spațiului de nume. ajutați-vă cu lansarea diferitelor teste pe care le veți scrie fără îndoială.

Director Rails.root / tmp este, ca orice * nix directorul / tmp, pentru a plasa fișiere temporare, cum ar fi fișiere și procese de acțiune id din cache.

Sarcini din spațiul de nume tmp: vor ajuta la curățarea și crearea directorului Rails.root / tmp:

  • șinele tmp: cache: clar șterge tmp / cache.
  • rampă tmp: prize: clar curăță tmp / prize.
  • rails tmp: screenshots: clar va clar tmp / capturi de ecran.
  • rails tmp: clar șterge toate fișierele cache, prize și capturi de ecran.
  • rails tmp: create creează directoare temporare pentru cache, sockets și ID-uri de proces (pid).

2.8. alte

  • rails statistici este excelent pentru revizuirea statistici codul dvs., afișează lucruri cum ar fi KLOC (mii de linii de cod) și codul dvs. pentru benchmarking.
  • secretul șinelor va da o cheie pseudo-aleatoare pentru a fi folosită ca o cheie secretă a sesiunii.
  • rails time: zones: toate listează toate fusurile orare pe care Rails le știe.

2.9. Sarcinile Custom Rake

Operațiile Custom rake au o extensie .rake și sunt localizate în Rails.root / lib / tasks. Aceste sarcini rake personalizate pot fi create folosind comanda bin / rails generate task.

Pentru a transmite argumente la sarcina dvs. de rake:

Sarcinile pot fi grupate prin plasarea lor în spații de nume:

Activitățile de apelare arată astfel:

Dacă trebuie să interacționați cu modelele de aplicații, să executați interogări într-o bază de date și așa mai departe, sarcina dvs. ar trebui să depindă de mediul de lucru. care va încărca codul pentru aplicația dvs.

3. Prompt de comandă Advanced Rails

Utilizarea mai avansată a liniilor de comandă se concentrează pe opțiunile utilitare utile (chiar uneori surprinzătoare) și personalizarea utilitarelor la nevoile dvs. și la caracteristicile fluxului de lucru. Acum enumerăm trucurile din manșonul Rails.

3.1. Rails cu baze de date și SCM

Când creați o nouă aplicație pe Rails, puteți alege ce tip de bază de date și ce tip de sistem de control sursă (SCM) urmează să utilizeze aplicația. Acest lucru vă va salva câteva minute și, bineînțeles, câteva linii.

Să vedem ce pot face opțiunile -git și -database = postgresql pentru noi:

Am creat directorul gitapp și am inițializat depozitul gol înainte ca Rails să adauge fișierele pe care le-a creat în depozitul nostru. Să aruncăm o privire la ceea ce a pus în configurația bazei de date:

Acest lucru va genera, de asemenea, câteva linii în configurația noastră database.yml care corespunde cu alegerea noastră de PostgreSQL ca bază de date.

Singurul truc cu utilizarea opțiunii SCM este că mai întâi trebuie să creați un director pentru aplicație, apoi să inițializați instrumentul SCM și numai atunci puteți executa noua comandă a șinelor pentru a genera baza aplicației.

CC BY-SA 3.0 "Rails", "Ruby on Rails" și sigla Rails sunt mărci comerciale ale DHH







Articole similare

Trimiteți-le prietenilor: