Hei acolo! Fac parte dintr -un furnizor de șine și sunt încântat să vă împărtășesc cum să creați un ajutor în șine. Este un instrument obraznic care vă poate face dezvoltarea șinelor mult mai ușoare și mai eficiente. Deci, hai să ne scufundăm chiar!
Ce sunt ajutoarele Rails?
În primul rând, să înțelegem care sunt ajutoarele Rails. Pe scurt, ajutoarele în șine sunt o modalitate de a partaja cod în diferite părți ale aplicației. Sunt ca mici funcții de utilitate pe care le puteți utiliza în vizualizările, controlerele și chiar și alți ajutoare. Gândiți -vă la ele ca la laterale de încredere care vă ajută să vă mențineți codul uscat (nu vă repetați).
De exemplu, să spunem că aveți o grămadă de vizualizări care trebuie să afișeze o dată formatată. În loc să scrieți codul de formatare a datei în fiecare vizualizare, puteți crea o metodă de ajutor care să o facă pentru dvs. Apoi, puteți apela doar această metodă în vizualizările dvs. ori de câte ori aveți nevoie pentru a afișa o dată formatată.
Crearea primului tău ajutor
Bine, deci cum creezi de fapt un ajutor în șine? Este destul de simplu. Rails vine cu un generator construit - care îl face o adiere.
Deschideți terminalul și navigați în directorul de aplicații Rails. Apoi, rulați următoarea comandă:
șinele generează helper myhelper
Această comandă va crea un nou fișier Helper înAplicație/AjutoriDirector numitmy_helper.rb. Deschideți acest fișier în editorul de text preferat și veți vedea ceva de genul acesta:
Modul MyHelper # Adăugați metode de ajutor aici se termină
Aceasta este structura de bază a unui ajutor de șine. Este doar un modul Ruby cu metode pe care le puteți defini. Să adăugăm o metodă simplă la ajutor. Să presupunem că vrem să creăm o metodă care să returneze un mesaj de bun venit.
Modul MyHelper Def Welcome_Message "Bine ați venit la aplicația noastră minunată Rails!" sfârșitul sfârșitului
Asta este! Am creat prima noastră metodă de ajutor. Acum, cum îl folosim?
Folosind asistentul dvs. în vizualizări
Utilizarea unei metode de ajutor într -o vedere este super ușoară. Să zicem că avem un fișier de vizualizareApp/Views/Welcome/Index.html.erb. În acest fișier, ne putem apelaWelcome_messageMetodă de genul acesta:
<h1> < %= welcome_message %> </h1>
Când această vizualizare este redată, aceasta va afișa mesajul de bun venit pe care l -am definit în metoda noastră de ajutor.
Metode de ajutor pentru formatare
Ajutorii sunt, de asemenea, excelent pentru formatarea datelor. Să zicem că lucrăm cu unele dintre produsele Rails pe care le furnizăm, cum ar fi49E2 Rail. S -ar putea să dorim să afișăm numele produsului într -un mod frumos, formatat.
Să creăm o metodă de ajutor pentru asta.
modulul producthelper def format_product_name (produs_name) product_name.upcase.gsub ("_", "") End End
Acum, în viziunea noastră, unde afișăm informații despre produs, putem folosi această metodă.
<p> < %= format_product_name ("49e2_rail") %> </p>
Acest lucru va afișa numele produsului în majuscule cu subliniere înlocuite de spații.
Lucrul cu mai mulți ajutoare
Puteți avea mai multe ajutoare în aplicația dvs. Rails și le puteți utiliza în diferite părți ale aplicației. De exemplu, s -ar putea să aveți unUserHelperpentru a face față cu formatarea utilizatorului și aProducthelperpentru a face față sarcinilor legate de produs.
Dacă doriți să utilizați un ajutor specific într -un controler, îl puteți include astfel:
Clasa ProductsController <ApplicationController Helper ProductHelper Def Index # Logica controlerului aici End End
Acest lucru va face toate metodele dinProducthelperDisponibil în vizualizările asociate cuProduse Controller.
Metode de ajutor pentru redare condiționată
Ajutorii sunt, de asemenea, utili pentru redarea condiționată. Să zicem că vrem să afișăm diferite mesaje pe baza faptului că un produs este în stoc sau nu.
Modul StockHelper Def Stock_Message (IN_STOCK) Dacă in_stock "Acest produs este în stoc și este gata de expediere!" Altfel „Ne pare rău, acest produs nu este în stoc”. End End End
În opinia noastră, putem folosi această metodă ca aceasta:
<p> < %= stock_message (@produs.in_stock) %> </p>
Aici,@produs.in_stockeste o valoare booleană care indică dacă produsul este în stoc sau nu.
Utilizarea ajutoarelor cu formularele Rails
Ajutorii pot fi, de asemenea, utilizați pentru a simplifica lucrul cu formularele Rails. De exemplu, să spunem că creăm un formular pentru a adăuga un nouCR175 Șine de macara feroviarăla inventarul nostru.


Putem crea o metodă de ajutor pentru a genera o etichetă pentru un câmp de formă.
modulul formhelper def personalizat_label (formular, câmp) form.label Field, clasa: "personalizat - etichetă"
În viziunea noastră de formă, putem folosi această metodă de ajutor:
<%= form_for @product do | f | %> < %= custom_label (f,: nume) %> < %= f.text_field: nume %> <!-Alte câmpuri de formă-> < %end %>
Aceasta va genera o etichetă cu clasa personalizată pentru câmpul nostru de formular.
Testarea ajutoarelor
Este important să vă testați metodele de ajutor pentru a vă asigura că funcționează așa cum era de așteptat. Rails folosește cel mai mare cadru pentru testare în mod implicit.
Pentru a testaWelcome_messageMetoda înMyhelper, putem crea un fișier de testare înTest/AjutorDirector numitmy_helper_test.rb.
Solicitați clasa „test_helper” MyHelperTest <ActionView :: TestScase Test „Mesaj de bun venit ar trebui să returneze șirul corect” DO ASTERT_EGAL „Bine ați venit la aplicația noastră Awesome Rails!”, Welcome_Message End End End End
Rulează testele folosindTest de șineComandați în terminal și veți vedea dacă metoda Helper trece testul.
Concluzie
Crearea și utilizarea ajutoarelor în șine este o modalitate puternică de a vă menține codul organizat și reutilizabil. Indiferent dacă aveți de -a face cu formatarea, redarea condiționată sau manipularea formularelor, ajutoarele îți pot face viața mult mai ușoară.
În calitate de furnizor de șine, am văzut de prima dată cum utilizarea ajutoarelor poate eficientiza procesul de dezvoltare și îl poate face mai eficient. Dacă sunteți interesat să cumpărați șinele noastre de înaltă calitate, precum49E2 Rail,CR175 Șine de macara feroviară, sau60lb ASCE Rail, Ne -ar plăcea să discutăm cu tine. Luați legătura cu noi pentru a începe o discuție de achiziții și pentru a vedea cum se pot încadra produsele noastre în proiectul dvs.
Referințe
- Ghiduri Rails: Documentația oficială a șinelor este o resursă excelentă pentru a afla mai multe despre ajutoarele de șine și alte aspecte ale dezvoltării șinelor.
- Dezvoltarea web agilă cu Rails: o carte cuprinzătoare care acoperă în profunzime dezvoltarea șinelor.
