<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Alex Chiri&#039;s Blog &#187; Ruby on Rails</title>
	<atom:link href="http://alexchiri.wordpress.com/category/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexchiri.wordpress.com</link>
	<description>Blog de programator şi din când în când doar de simplu român</description>
	<lastBuildDate>Wed, 14 Oct 2009 21:11:46 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>ro</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='alexchiri.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/78f8b9ac3fc4d9d20d294e43ddc4576a?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Alex Chiri&#039;s Blog &#187; Ruby on Rails</title>
		<link>http://alexchiri.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://alexchiri.wordpress.com/osd.xml" title="Alex Chiri&#039;s Blog" />
		<item>
		<title>HelloWorld cu Ruby on Rails</title>
		<link>http://alexchiri.wordpress.com/2008/02/02/helloworld-cu-ruby-on-rails/</link>
		<comments>http://alexchiri.wordpress.com/2008/02/02/helloworld-cu-ruby-on-rails/#comments</comments>
		<pubDate>Sat, 02 Feb 2008 10:20:22 +0000</pubDate>
		<dc:creator>Alex Chiri</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://alexchiri.wordpress.com/2008/02/02/helloworld-cu-ruby-on-rails/</guid>
		<description><![CDATA[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, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexchiri.wordpress.com&blog=2670152&post=33&subd=alexchiri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>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, <em>rails_apps</em>.</p>
<p>Haideti sa facem folderul noii aplicatii cu ajutorul comenzii <em>rails</em> urmata de numele aplicatiei. Deci introduceti la consola comanda <em>rails hello</em>, 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 <em>app</em> 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 <em>helpers</em> in care ne vom pune la nevoie functii ajutatoare si care nu isi au locul in controller(ere).</p>
<p>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.</p>
<p>Pentru a face ceva avem nevoie in primul rand de un controller sa-i zicem <em>say</em> si de o actiune <em>hello</em>. Ni le putem genera foarte usor cu ajutorul consolei din folderul aplicatiei. Deci daca nu ati facut un <em>cd hello</em> in consola, ar trebui. Apoi scrieti comanda <em>ruby script/generate controller say hello</em>. Aceasta va genera controllerul cerut si actiunea <em>hello</em> care apare sub forma unei metode in clasa controllerului.</p>
<p>Haideti sa vedem ce apare pana acum in browser. In consola scrieti <em>ruby script/server</em> ceea ce va avea ca efect pornirea serverului default ce va asculta la portul 3000 implicit. Pornim browserul si introducem <a href="http://localhost:3000/say/hello">http://localhost:3000/say/hello</a></p>
<p>Vom obtine un raspuns ca cel in imagine:</p>
<p><a href="http://alexchiri.files.wordpress.com/2008/02/image5.png"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="268" alt="image" src="http://alexchiri.files.wordpress.com/2008/02/image-thumb4.png?w=456&#038;h=268" width="456" border="0" /></a> </p>
<p>Automat a fost creat si fisierul view pentru actiunea <em>hello</em> si Rails ne informeaza chiar si unde este situat: <em>app/views/say/hello.html.erb</em></p>
<p><em>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</em></p>
<p>Sa deschidem acest fisier cu un editor si sa zicem ca am vrea sa scrie &quot;Hello! Peste 5 minute va fi x&quot;. Cum am scrie asta? Cam asa:</p>
<p><em>Hello! In 5 minute va fi ora &lt;%= 5.minutes.from_now %&gt;</em></p>
<p>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.</p>
<p>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.</p>
<p>Deschideti fisierul controllerului <em>say_controller.rb</em> in editor si si faceti-l sa arate asa:</p>
<p><em>class SayController &lt; ApplicationController </em></p>
<p><em>&#160; def hello     <br />&#160;&#160;&#160;&#160;&#160; @ora = 5.minutes.from_now      <br />&#160; end      <br />end</em></p>
<p>Modificati apoi linia din view:</p>
<p><em>Hello! In 5 minute va fi ora &lt;%= @ora %&gt;</em></p>
<p>Si gata! Dati un refresh si veti vedea ca nu e schimbat nimic, in schimb ne invatam sa lucram organizat! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alexchiri.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alexchiri.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexchiri.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexchiri.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexchiri.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexchiri.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexchiri.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexchiri.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexchiri.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexchiri.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexchiri.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexchiri.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexchiri.wordpress.com&blog=2670152&post=33&subd=alexchiri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://alexchiri.wordpress.com/2008/02/02/helloworld-cu-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3a0795f4c0ed212881c92d8eabdcae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alex Chiri</media:title>
		</media:content>

		<media:content url="http://alexchiri.files.wordpress.com/2008/02/image-thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Scurta introducere Ruby on Rails</title>
		<link>http://alexchiri.wordpress.com/2008/02/01/scurta-introducere-ruby-on-rails/</link>
		<comments>http://alexchiri.wordpress.com/2008/02/01/scurta-introducere-ruby-on-rails/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 22:52:46 +0000</pubDate>
		<dc:creator>Alex Chiri</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://alexchiri.wordpress.com/2008/02/01/scurta-introducere-ruby-on-rails/</guid>
		<description><![CDATA[ 
Deschid sectiunea dedicata Ruby on Rails a blogului, cu ce altceva, decat cu o introducere. Nu stiu cat de familiar sunteti cu Ruby on Rails, dar pe mine m-a prins din prima. 
Ar trebui stabilite doua lucruri din start: Ruby este un limbaj interpretat inventat de Yukihiro &#8220;matz&#8221; Matsumoto, iar Rails este un framework [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexchiri.wordpress.com&blog=2670152&post=30&subd=alexchiri&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="116" alt="image" src="http://alexchiri.files.wordpress.com/2008/02/image3.png?w=91&#038;h=116" width="91" align="left" border="0" /> </p>
<p>Deschid sectiunea dedicata Ruby on Rails a blogului, cu ce altceva, decat cu o introducere. Nu stiu cat de familiar sunteti cu Ruby on Rails, dar pe mine m-a prins din prima. </p>
<p>Ar trebui stabilite doua lucruri din start: <a href="http://www.ruby-lang.org">Ruby</a> este un limbaj interpretat inventat de Yukihiro &#8220;matz&#8221; Matsumoto, iar <a href="http://api.rubyonrails.org/">Rails</a> este un framework derivat dintr-o <a href="http://www.basecamphq.com/">pagina</a> web avand ca dezvoltator pe David Heinemeier Hansson.</p>
<p>Ruby on Rails urmeaza cu strictete batrana arhitectura <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> (Model-View-Controller) care impune separarea logicii aplicatiei(<em>controller</em>) de partea de prezentare(<em>view</em>) si partea de date(<em>model</em>).Cu RoR se pot face orice fel de aplicatii web, intr-un mod organizat. E mai dificil la inceput pana te obisnuiesti unde ar trebui sa fie fiecare partea a aplicatiei, dar odata ce ai trecut peste acest obstacol va fi mult mai simplu.</p>
<p>RoR foloseste principiul <em>Convention over Configuration </em>insemnand ca daca respecti conventiile initiale nu vei avea de configurat aproape nimic pentru a da drumul la dezvoltare. Conventiile pot fi rupte, dar in majoritatea cazurilor nu o sa fie nevoie.</p>
<p>RoR respecta si alt principiu intitulat <em>DRY </em>: <em>Don&#8217;t Repeat Yourself</em> si inseamna sa nu pui acelasi cod, care face acelasi lucru in mai multe locuri in aplicatie, evita codul redundant.</p>
<p>Pentru a dezvolta cu RoR pe Windows cea mai simpla solutie la instalarea tuturor necesitatilor este un proiect numit <a href="http://instantrails.rubyforge.org/wiki/wiki.pl">InstantRails</a>. Dupa ce il downloadati si il porniti o sa va confruntati cu urmatoarea fereastra:</p>
<p><a href="http://alexchiri.files.wordpress.com/2008/02/image4.png"><img style="border-right:0;border-top:0;border-left:0;border-bottom:0;" height="206" alt="image" src="http://alexchiri.files.wordpress.com/2008/02/image-thumb3.png?w=467&#038;h=206" width="467" border="0" /></a> </p>
<p>Fereastra va da informatii referitoare la starea celor doua servere: Apache si MySql. Pentru rularea aplicatiilor&#160; este necesar Apache cu un modul numit <a href="http://mongrel.rubyforge.org/">Mongrel</a> care este free si poate fi descarcat dar pentru dezvoltare poate fi folosit <a href="http://www.webrick.org/">WEBrick</a> care vine cu pachetul default RoR.</p>
<p>Din acest moment sistemul e pregatit pentru a rula aplicatii RoR. Tot ce mai aveti nevoie e un editor de text si va puteti apuca de treaba. Orice editor sunteti obisnuit e fantastic. Ca recomandari: <a href="http://www.editpadpro.com/">EditPad</a>, <a href="http://www.e-texteditor.com/">E</a>, <a href="http://notepad-plus.sourceforge.net/">Notepad++</a> iar daca vreti mai mult ajutor decat cel dat de un editor, folositi <a href="http://www.netbeans.org/">Netbeans 6.0</a> cu modulul de RoR.</p>
<p>Next: HelloWorld with RoR</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/alexchiri.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/alexchiri.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/alexchiri.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/alexchiri.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/alexchiri.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/alexchiri.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/alexchiri.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/alexchiri.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/alexchiri.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/alexchiri.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/alexchiri.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/alexchiri.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=alexchiri.wordpress.com&blog=2670152&post=30&subd=alexchiri&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://alexchiri.wordpress.com/2008/02/01/scurta-introducere-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6e3a0795f4c0ed212881c92d8eabdcae?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Alex Chiri</media:title>
		</media:content>

		<media:content url="http://alexchiri.files.wordpress.com/2008/02/image3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://alexchiri.files.wordpress.com/2008/02/image-thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
	</channel>
</rss>