<?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>Blog de Antonio Manuel Muñiz &#187; Ruby on Rails</title>
	<atom:link href="http://amunizmartin.wordpress.com/tag/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://amunizmartin.wordpress.com</link>
	<description>Desarrollo, Ingeniería y Calidad del Software</description>
	<lastBuildDate>Mon, 30 Nov 2009 19:27:18 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='amunizmartin.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/3f7b8b4861abbf6680395419293e44a6?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Blog de Antonio Manuel Muñiz &#187; Ruby on Rails</title>
		<link>http://amunizmartin.wordpress.com</link>
	</image>
			<item>
		<title>La agilidad de Ruby on Rails</title>
		<link>http://amunizmartin.wordpress.com/2008/03/29/la-agilidad-de-ruby-on-rails/</link>
		<comments>http://amunizmartin.wordpress.com/2008/03/29/la-agilidad-de-ruby-on-rails/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 10:58:00 +0000</pubDate>
		<dc:creator>Antonio Manuel Muñiz Martín</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://amunizmartin.wordpress.com/2008/03/29/la-agilidad-de-ruby-on-rails/</guid>
		<description><![CDATA[Hacía tiempo que quería probar Ruby on Rails, por fin me he decidido a hacer algo, mi primera toma de contacto ha sido bastante satisfactoria. En principio, en comparación con Java, se necesita mucho menos para montar una aplicación simple: instalación, un par de comandos y listo. Los pasos a seguir para crear una aplicación [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amunizmartin.wordpress.com&blog=3563308&post=7&subd=amunizmartin&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hacía tiempo que quería probar Ruby on Rails, por fin me he decidido a hacer algo, mi primera toma de contacto ha sido bastante satisfactoria. En principio, en comparación con Java, se necesita mucho menos para montar una aplicación simple: instalación, un par de comandos y listo. Los pasos a seguir para crear una aplicación web básica con Ruby on Rails son los siguientes:</p>
<p>1. <a href="http://hivelogic.com/articles/ruby-rails-mongrel-mysql-osx/">Instalación</a> de Ruby on Rails<br />
2. Creación del esqueleto de la aplicación:</p>
<p><span style="font-family:courier new;"> $ rails AplicacionEjemplo</span></p>
<p>3. Iniciar la aplicación en el servidor integrado de RoR (WEBrick). Muy útil durante el desarrollo.</p>
<p><span style="font-family:courier new;"> $ script/server</span></p>
<p>Veremos la siguiente interfaz en localhost:3000</p>
<p><a href="http://bp1.blogger.com/__to3AXaS3qc/R-4hwNFRVsI/AAAAAAAAAAs/KV_lrkQA48E/s1600-h/imagen1.jpeg"><img style="display:block;text-align:center;cursor:pointer;margin:0 auto 10px;" src="http://bp1.blogger.com/__to3AXaS3qc/R-4hwNFRVsI/AAAAAAAAAAs/KV_lrkQA48E/s400/imagen1.jpeg" border="0" alt="" /></a></p>
<p>4. Es posible que exista algún tipo de problema con las versiones de cada componente instalado (especialmente en MacOS 10.4), en ese caso se mostrará la versión necesaria y la actualizamos con:</p>
<p><span style="font-family:courier new;">$ gem install -v=X.Y.Z ident.</span></p>
<p>5. Inicialización de la base de datos. Suponemos que se dispone de una base de datos MySQL instalada y configurada. Lo único que nos hará falta para que Ruby conecte con la base de datos es configurar el fichero config/database.yml<br />
Configuraremos la sección development (Ruby ofrece otras dos configuraciones, test y production):</p>
<p><span style="font-family:courier new;"><br />
# Seccion modificada para una base de datos MySQL<br />
development:<br />
adapter: mysql<br />
database: personas_development<br />
username: root<br />
password:<br />
socket: /private/tmp/mysql.sock<br />
</span><br />
6. Ruby genera ficheros de migración para la base de datos. Estos ficheros son clases Ruby que modelan las entidades de BD.</p>
<p><span style="font-family:courier new;">$ script/generate migration personas</span></p>
<p>Este comando genera la clase Ruby (db/migrate/001_personas.rb) mencionada antes, debemos completarla añadiendo la estructura de la tabla en BD:<br />
<span style="font-family:courier new;"><br />
class Personas &lt; ActiveRecord::Migration<br />
def self.up<br />
create_table :personas do |table|<br />
table.column :name, :string<br />
table.column :dni, :string<br />
end<br />
end<br />
def self.down<br />
drop_table :accounts<br />
end<br />
end </span></p>
<p>7. Utilizando rake (make para Ruby) migraremos la tabla a la BD configurada:</p>
<p><span style="font-family:courier new;">$ rake db:migration </span></p>
<p>Antes de ejecutar el comando debemos crear la base de datos personas_development en la BD.</p>
<p>Rake añade un campo más a la tabla llamado id para usarlo como clave primaria.<br />
La potencia de esta utiliadad ofrecida por RoR es importante ya que ante una migración a una bueva BD lo único que hemos de hacer es modificar el fichero de configuración database.yml y volver a ejecutar el comando. De esta forma se crearán todas las tablas necesarias en la BD.</p>
<p>8. Por último, y esto es lo que más me ha gustado, vamos a generar todos los elementos necesarios para que nuestra aplicación pueda crear/modificar/actualizar/eliminar ítems en la base de datos, ¡¡con un solo comando!!</p>
<p><span style="font-family:courier new;">$ script/generate scaffold accounts name:string dni:string</span></p>
<p>Además el código generado es totalmente fiel al patrón MVC (de hecho, crea tres carpetas una para cada capa), y legible para seres humanos (en otras ocasiones he visto código generado que deja sin palabras&#8230; y sin ganas de seguir).</p>
<p>9. Nada más, reiniciamos el servidor (Ctrl+C y script/server) para que conecte con la base de datos, accedemos a localhost:3000/account, y como diría Freddy: The Show Must Go On!</p>
<p><a href="http://bp3.blogger.com/__to3AXaS3qc/R-4hAtFRVrI/AAAAAAAAAAk/YcU_76A8F64/s1600-h/imagen2.jpeg"><img style="display:block;text-align:center;cursor:pointer;margin:0 auto 10px;" src="http://bp3.blogger.com/__to3AXaS3qc/R-4hAtFRVrI/AAAAAAAAAAk/YcU_76A8F64/s400/imagen2.jpeg" border="0" alt="" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/amunizmartin.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/amunizmartin.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/amunizmartin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/amunizmartin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/amunizmartin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/amunizmartin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/amunizmartin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/amunizmartin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/amunizmartin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/amunizmartin.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/amunizmartin.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/amunizmartin.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=amunizmartin.wordpress.com&blog=3563308&post=7&subd=amunizmartin&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://amunizmartin.wordpress.com/2008/03/29/la-agilidad-de-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d30bd2fcdb387d2f82405c2a65298937?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Antonio Manuel Muñiz Martín</media:title>
		</media:content>

		<media:content url="http://bp1.blogger.com/__to3AXaS3qc/R-4hwNFRVsI/AAAAAAAAAAs/KV_lrkQA48E/s400/imagen1.jpeg" medium="image" />

		<media:content url="http://bp3.blogger.com/__to3AXaS3qc/R-4hAtFRVrI/AAAAAAAAAAk/YcU_76A8F64/s400/imagen2.jpeg" medium="image" />
	</item>
	</channel>
</rss>