Acasă > Ruby on Rails > HelloWorld cu Ruby on Rails

HelloWorld cu Ruby on Rails

Presupunand ca aveti totul pregatit pentru a dezvolta cea mai simpla aplicatie Rails, incepem si pornim o consola Ruby din meniul InstantRails(pe care daca nu l-ati pornit acum ar fi un moment bun). Aceasta apare ca o consola standard Windows si va avea ca si cale de pornire folderul in care sunt puse aplicatiile rails, rails_apps.

Haideti sa facem folderul noii aplicatii cu ajutorul comenzii rails urmata de numele aplicatiei. Deci introduceti la consola comanda rails hello, comanda ce va avea ca efect crearea unui folder hello iar in interiorul lui alte foldere si fisiere predefinite. Cel mai folosit va fi continutul folderului app al aplicatiei pentru ca aici vor fi puse cele trei componente ale MVC. Daca il deschideti veti vedea folderele corespunzatoare fiecarei componente. Mai este un folder numit helpers in care ne vom pune la nevoie functii ajutatoare si care nu isi au locul in controller(ere).

Cand browserul face un request la o aplicatie Rails, cel care preia requestul este controllerul care la randul lui invoca modelul iar apoi controllerul, cu raspunsul dat de model, invoca view-ul care afiseaza in browser raspunsul.

Pentru a face ceva avem nevoie in primul rand de un controller sa-i zicem say si de o actiune hello. Ni le putem genera foarte usor cu ajutorul consolei din folderul aplicatiei. Deci daca nu ati facut un cd hello in consola, ar trebui. Apoi scrieti comanda ruby script/generate controller say hello. Aceasta va genera controllerul cerut si actiunea hello care apare sub forma unei metode in clasa controllerului.

Haideti sa vedem ce apare pana acum in browser. In consola scrieti ruby script/server ceea ce va avea ca efect pornirea serverului default ce va asculta la portul 3000 implicit. Pornim browserul si introducem http://localhost:3000/say/hello

Vom obtine un raspuns ca cel in imagine:

image

Automat a fost creat si fisierul view pentru actiunea hello si Rails ne informeaza chiar si unde este situat: app/views/say/hello.html.erb

Nota: de la versiunea 2.0 a Rails s-au schimbat un pic extensiile la view-uri. Aici view-ul are extensia .html.erb ceea ce inseamna ca este de tip html iar erb vine de la Embedded Ruby. In versiunile anterioare extensia fisierului ar fi fost .rhtml

Sa deschidem acest fisier cu un editor si sa zicem ca am vrea sa scrie "Hello! Peste 5 minute va fi x". Cum am scrie asta? Cam asa:

Hello! In 5 minute va fi ora <%= 5.minutes.from_now %>

Introduceti linia asta in view dupa ce stergeti ce era in el, salvati si dati un refresh la browser. Rezultatul va aparea fara sa fie nevoie de restart al serverului, pentru ca in stadiul de development serverul va incarca de fiecare data ultimele modificari, de aceea dureaza un pic mai mult incarcarea.

Ar mai fi totusi ceva. In mod normal orice tine de logica aplicatiei ar trebui sa stea in controller iar view-ul doar sa referentieze datele. Sigur pentru o aplicatie ca asta nu isi are rostul, dar haideti sa mutam obtinerea datei in controller.

Deschideti fisierul controllerului say_controller.rb in editor si si faceti-l sa arate asa:

class SayController < ApplicationController

  def hello
      @ora = 5.minutes.from_now
  end
end

Modificati apoi linia din view:

Hello! In 5 minute va fi ora <%= @ora %>

Si gata! Dati un refresh si veti vedea ca nu e schimbat nimic, in schimb ne invatam sa lucram organizat! :P

Categories: Ruby on Rails Tags: , ,
  1. nici un comentariu până acum
  1. No trackbacks yet.