Folosind Sinatra în Rubin

click fraud protection

În articolul precedent din acest articol serie de articole, am vorbit despre ce este Sinatra. În acest articol, vom analiza unele coduri reale Sinatra funcționale, atingând câteva caracteristici Sinatra, care vor fi explorate în profunzime în articolele viitoare din această serie.

Înainte de a începe, va trebui să mergeți înainte și să instalați Sinatra. Instalarea Sinatra este la fel de ușoară ca orice altă nestemată. Sinatra are câteva dependențe, dar nimic important și nu ar trebui să aveți probleme cu instalarea acestuia pe nicio platformă.

$ gem instala sinatra

Salut Lume!

Aplicația Sinatra „Hello world” este șocant de simplă. Fără a include liniile necesare, shebang și spațiul alb, sunt doar trei linii. Aceasta nu este doar o mică parte a aplicației dvs., cum ar fi un controler într-o aplicație Rails, acesta este întregul lucru. Un alt lucru pe care îl puteți observa este că nu ați fost necesar să rulați nimic, cum ar fi generatorul Rails pentru a genera o aplicație. Trebuie doar să lipiți următorul cod într-un nou fișier Ruby și ați terminat.

instagram viewer
#! / usr / bin / env ruby
necesita 'rubygems'
necesita 'sinatra'
a lua '/' a face
'Salut Lume!'
Sfârșit

Desigur, acesta nu este un program foarte util, ci este doar „Salut lume”, dar aplicațiile chiar mai utile în Sinatra nu sunt mult mai mari. Deci, cum derulați această aplicație Web minusculă? Un fel de complex script / server comanda? Nu, doar executați fișierul. Este doar un program Ruby, rulează-l!

inatra $ ./hello.rb
== Sinatra / 0.9.4 a luat în scenă 4567 pentru dezvoltarea cu backup de la Mongrel

Nu este foarte interesant încă. A început serverul și este legat de portul 4567, așa că mergeți mai departe și îndreptați-vă browserul Web către http://localhost: 4567/. Există mesajul tău „Salut lume”. Aplicațiile web nu au fost niciodată atât de ușoare în Ruby înainte.

Utilizarea parametrilor

Deci, să ne uităm la ceva ceva mai interesant. Haideți să facem o aplicație care vă salută pe nume. Pentru a face acest lucru, va trebui să utilizăm un parametru. Parametrii din Sinatra sunt ca orice altceva - simplu și simplu.

#! / usr / bin / env ruby
necesita 'rubygems'
necesita 'sinatra'
a lua '/ salut /: nume' a face
"Hello # {params [: name]}!"
Sfârșit

După ce ați făcut această modificare, va trebui să reporniți aplicația Sinatra. Omoară-l cu Ctrl-C și rulează-l din nou. (Există o modalitate în acest sens, dar vom analiza asta într-un articol viitor.) Acum, parametrii sunt simpli. Am făcut o acțiune numită /hello/:name. Această sintaxă imită cum vor arăta adresele URL, așa că mergeți la http://localhost: 4567 / salut / Numele tău pentru a o vedea în acțiune.

/hello porțiunea se potrivește cu acea porțiune a adresei URL din reqestul făcut și :Nume va absorbi orice alt text pe care îl dați și îl va pune în params hash sub cheie :Nume. Parametrii sunt la fel de ușor. Desigur, puteți face multe altele, inclusiv parametrii pe bază de regexp, dar acest lucru este absolut necesar în aproape fiecare caz.

Adăugarea HTML

În cele din urmă, haideți să răspândim această aplicație cu un pic de HTML. Sinatra va returna ceea ce primește de la instrumentul de gestionare a adreselor URL în browserul web. Până acum, tocmai am întors un șir de text, dar putem adăuga ceva HTML acolo fără nicio problemă. Vom folosi ERB aici, la fel cum este folosit în șinele. Există și alte opțiuni (probabil mai bune), dar aceasta este poate cea mai familiară, deoarece vine cu Ruby, și va merge bine aici.

În primul rând, Sinatra va reda o viziune numită schemă dacă există. Această vedere a aspectului ar trebui să aibă Randament afirmație. Această declarație de randament va capta rezultatul vizualizării specifice care este redat. Acest lucru vă permite să creați machete foarte simplu. În cele din urmă, avem un buna vizualizare, care generează mesajul de salut real. Aceasta este vizualizarea redată folosind funcția erb: salut apel metodă. Veți observa că nu există fișiere de vizualizare separate. Poate fi, dar pentru o aplicație atât de mică, cel mai bine este să păstrezi tot codul într-un singur fișier. Deși vizualizările sunt separate la sfârșitul fișierului.

#! / usr / bin / env ruby
necesita 'rubygems'
necesita 'sinatra'
a lua '/ salut /: nume' a face
@ nume = parame [: nume]
erb: salut
Sfârșit
__SFÂRȘIT__
@@ layout





@@ buna

Buna ziua !

Și acolo îl ai. Avem o aplicație completă, funcțională, la nivel mondial, în aproximativ 15 linii de cod, inclusiv vizualizările. Următoarele articole, vom arunca o privire mai atentă asupra rutelor, cum puteți stoca și prelua date și cum puteți face vizualizări mai bune cu HAML.

instagram story viewer