Introducción a Ruby on Rails
Introducción al framework de Ruby on Rails incluyendo el típico -hola mundo- para dar nuestros primeros pasos.
Desde que tuve conocimiento de la revolución del diseño de aplicaciones web, popularmente conocido como Web 2.0, he sido testigo de varias tecnologías que giran alrededor de ésta: Sindicación de contenidos RSS, AJAX, Tags, Web Services, etc.
Hoy en día podemos encontrar muchas webs orientadas a la comunidad o la generación de contenido por parte de los usuarios, como por ejemplo: Technorati, Odeo, Basecamp, del.icio.us, digg, etc.
Muchas de éstas aplicaciones web están siendo desarrolladas bajo Ruby on Rails, surgen varias interrogantes como el ¿por qué no eligen otra plataforma?, ¿es Ruby on Rails mejor que otras plataformas?, ¿es sólo una moda?. Estas preguntas merecen respuestas concretas, expliquemos en qué consiste esto.
¿Qué es Ruby?
Ruby es un lenguaje de scripts, multiplataforma, netamente orientado a objetos es software libre, fue creado por Yukihiro Matsumoto conocido como Matz. La primera versión fue liberada en 1995, hereda varias caracaterísticas de lenguajes como: Perl, Smalltalk, Eiffel, Ada y Lisp. Como lo indica su propio autor, es un lenguaje “aparentemente sencillo pero internamente complejo”.
Esto quiere decir que mientras más nos abstraemos en el paradigma orientado a objetos notaremos realmente la complejidad del lenguaje (al menos fue mi caso, ya que vengo de lenguajes estructurados y orientados a eventos); lo considero un lenguaje muy intuitivo casi a un nivel de lenguaje humano.
Ruby fue diseñado para un desarrollo rápido y sencillo. Cada día este lenguaje va ganando más adeptos, tanto así que la empresa Sun Mirosystems, está apoyando un proyecto llamado Jruby que es un interprete de Ruby escrito 100% en Java.
Entre las carecterísticas del lenguaje se encuentran:
- Posibilidad de hacer llamadas directamente al sistema operativo.
- Muy potente para el manejo de cadenas y expresiones regulares.
- No se necesita declarar las variables.
- La sintaxis es simple y consistente.
- Gestión de memoria automática.
- Todo es un objeto.
- Métodos Singleton.
- un largo.
Muy bien, hasta aquí creo que tenemos una visión básica de lo que es Ruby.
¿Qué es Rails?
Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está basado en el patrón de diseño Modelo Vista Controlador (MVC). Fue creado por David Heinemeier Hansson, empleado de la empresa 37signals.
Fue liberado por primera vez al público en julio del 2004, y lo implemento en una aplicación orientada a la administración de proyectos llamada Basecamp. Actualmente se uniéron más personas al desarrollo de Rails podemos visualizar aquí a los integrantes. Rails está basado en estos principios de desarrollo:
- Don’t Repeat Yourself
- Convention Over Configuration
Primer principio:
La primera regla que a mi buen entender significa “No lo vuelvas a repetir”, es una de las cosas más novedosas que he podido encontrar en este framework. Imaginate tener un formulario, y llamarlo las veces que quieras y desde donde quieras, simplemente con una línea código.
Tener una tabla en tu base de datos, y manipular a los registros como un objeto y a sus campos como un atributo, sin necesidad de declarar nada, son sólo algunas aplicaciones de este principio de desarrollo.
El segundo principio:
Nos dice “Convención antes que Configuración”, muy bien con esto el framework nos dice: oye he notado que tu siempre usas ésto de ésta forma, o veo que siempre tienes que configurar esto de aquí, porque no hacemos una cosa, yo te doy todo esto configurado, si tu respetas ésta configuración te ahorras tiempo, y sino quieres hacerlo, no hay problema no me molesto, para muestra un botón:
class Auto < ActiveRecord::Base end
¿Qué hago con eso?
la verdad no deberíamos hacer nada pero ya hicimos mucho, con esa declaración de una clase, lo que hemos logrado es mapear a una tabla en nuestra base de datos.
¿Por qué en plural?
Dicho de otra manera Rails buscará una tabla llamada “autos”, en nuestra base de datos, esto es así porque Rails cree conveniente que debe llamarse así (principio de pluralización).
Aunque este comportamiento se puede desactivar de una manera muy sencilla, ¿Y si no la encuentra?, pues nos dará un error. Y qué ocurre si la tabla con la que quiero trabajar no tiene ese nombre exacto, no hay problema, con una línea más serás complacido:
class Auto < ActiveRecord::Base set_table_name 'carros' end
Con esto el framework comprenderá que en vez de usar ‘autos’, debería usar ‘carros’ así de sencillo. Muy bien hasta aquí tenemos una muy pequeña noción de lo que es Ruby y Rails, ahora veamos lo necesario para tenerlo instalado en nuestra máquina.
Instalando Ruby
Versión FreeBSD:
Actualizando los ports
portsnap fetch
portsnap update
Instalando Ruby
cd /usr/ports/lang/ruby18
make install clean
Versión Linux:
Descargamos el fuente
./configure
make
make install
Para usuarios de Debian o Ubuntu:
sudo apt-get install ruby irb rdoc
Versión Windows
Descargar
Siguiente, Siguiente, Aceptar, No, deseo registrarme luego.
Muy bien hasta aquí ya tenemos instalado Ruby.
Instalando Rails
Si disponemos de conexión a internet el trabajo se resumen en:
gem install rails –include-dependencies. Para una instalación manual debemos descargarnos cada uno de los módulos:
Los archivos deberan ser descargados en un sólo directorio y los comandos ejecutados en ese directorio.
- gem install rake-0.7.1.gem
- gem install activesupport-1.3.1
- gem install activerecord-1.14.4.gem
- gem install actionpack-1.12.5.gem
- gem install actionmailer-1.2.5.gem
- gem install actionwebservice-1.1.6.gem
- gem install rails-1.1.6.gem
Muy bien hasta aquí ya debemos tener instalado Ruby y Rails satisfactoriamente, ahora creemos nuestra primera aplicación:
Creamos un directorio de trabajo y nos ubicamos dentro de el en la consola.
Rails ejemplo:
Automaticamente se generará el esqueleto de nuestra aplicación.
Muy bien ahora entramos en el directorio que se genero y ejecutamos el servidor web que viene con Ruby (Webrick):
ruby script/server Y veremos una pantalla de bienvenida a nuestra aplicación: Ahora vamos a realizar la prueba de fuego un ‘Mundo Hola!’, para esto realiza lo siguiente:
Creamos un controlador ruby script/generate controller test,
ahora se habrán creado varios archivos entre ellos edita ‘directorio_trabajo/ejemplo/app/controllers/test_controller.rb’:
Vamos agregarle un método:
class TestController < ActionController::Base def index end end
Ahora crearemos la vista para esta acción que acabamos de crear, en ‘directorio_trabajo/ejemplo/app/views/test’ crea un archivo llamado ‘index.rhtml’ y dentro de el colocas el texto ‘Mundo Hola desde RoR!’, lo grabas y colocas lo siguiente en tu navegador: http://localhost:3000/test/
Supongamos que el controlador "test" es el controlador principal de tu aplicación, y naturalmente no sería lo ideal que los usuarios ingresen a tu página a través de "tudominio.com/test", deberían ingresar simplemente escribiendo "tudominio.com", bien para lograr esto editemos ‘directorio_trabajo/ejemplo/config/routes.rb’:
descomentamos la línea
# map.connect ”, :controller => "welcome"
quedaría así:
map.connect '', :controller => "test":
Y como nos indican unas líneas arriba, debemos borrar el archivo ‘directorio_trabajo/ejemplo/public/index.html’, y ahora si se podría acceder a través de ‘http://localhost:3000/’.
Bueno espero que esta pequeña introducción haya sido suficiente para motivar a los lectores a investigar más sobre está interesante plataforma de desarrollo web.
Quiero también aprovechar la oportunidad para invitar a todos los amigos que de alguna manera estamos ligados con la tecnología, a generar contenido en nuestro idioma, ya que considero que es una gran barrera para el aprendizaje de muchos, creo que la tecnología no tiene sentido sino esta al alcanze de todos.
Aquí les dejo una pequeña bibliografía:
weno yo toy empezando con ruby y la verdad es que me encanta… de lo mejor
la verdad es que e empezado a ver a ruby desde febrero del presento año … y ruby on rails tambien es una maravillas a lo que a mi respecta e echo cosas muy sencillas en poco tiempo … pero el problema es que tengo poco tiempo jajajaj…
A decir verdad empezo muy bien el articulo, pero brinco de principiante a avanzado, se comio el intermedio, de la mitad de la lectura para abajo me dejo botado. 😀
muy buena introducción a RoR. Mucho se está hablando de este lenguaje y sin duda que hay que apartar algo de tiempo para conocerlo más de fondo. Me llamó mucho la atención el estudio de SitePoint de hace algunos meses atrás donde mencionaba que los programadores php están considerando migrar a este lenguaje..
Se ve muy bueno Ruby. gracias por el articulo
Buenas, excelente material, con este estoy tratando de aprender algo de este lenguaje..
Por otro parte tengo un problema a querer arrancar el Rails.
Dice que debo entrar el en directorio que se creo (cd /usr/local/lib/ruby/1.8/) y ejecutar \”\”ruby script/server\”\”, pero no obtego resultado me sale \”ruby: No such file or directory — script/server (LoadError)\”.
He intentado arracar Webrick solo por la consola y nada..
Tengo todo instalado, me baje en paquete en tar.gz y lo compile bien, tengo instalado el apache.
Gracias.
Hola Jorge Luis, para arrancar el Webrick debes entrar en el directorio donde creaste tu aplicacion con \’rails miaplicacion\’, ahi dentro de la estructura de directorio se encuentran los scripts.
Saludos.
me fue de utilidad, gracias
Estoy empezando a trabajar con RoR, tengo un problema estoy trabajando con otros dos programadores, en las maquinas de ellos el codigo anda y en mi maquina no anda nada, que podra ser? muchas gracias
[…] de Ruby on Rails para programar páginas […]
Soy programador de PHP y desde hace un par de semanas vengo usando RoR. Es bueno encontrarse con esta clase de material en nuestro idioma que nos lo presenta de forma clara, muy ilustrativa y motivadora. Gracias.
Y como esta el tema de hostings con soporte de RoR ??
[…] de Ruby on Rails para programar páginas […]
Espero que le den más apoyo, a este framework… ya que es muy consistente y amigable… segun lo que he leido.. muy bueno tu tema
Saludos
Hola, yo programo en PHP, y todavía no me he metido con ningún framework para este lenguaje. PHP es muy eficiente y no es que sea complicado, pero el principal problema que le veo es la desordenada mezcla de código PHP con HTML que hace que la depuración, ampliación y reutilización sea más tediosa, o sea, falta de transparencia en el código.
Entonces, yo quisiera saber si la transparencia es mejor usando Ruby.
Y qué ventajas e inconvenientes hay entre usar Ruby on Rails o PHP on Cake/Zend/etc
[…] de Ruby on Rails para programar páginas […]
[…] de Interés: http://es.wikipedia.org/wiki/Ruby_on_Rails [español] http://www.maestrosdelweb.com/editorial/rubyonrails/ [español] http://www.refreshinglyblue.com/2007/8/20/php-vs-ruby-practical-language-differences […]
[…] de Ruby on Rails para programar páginas […]
Bien con el artículo…..yo estoy matando mi domingo investigando acerca de este rails, y me parece interesante….
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
oigan acabo de empezar kon ruby y ocupo una aplicacion pero no se que onda, no se como empezarlo
En el articulo nos dice que para instalar rails debemos poner gem install rails –include-dependencies en realidad esta mal porque asi no instala rails seria asi
gem install rails -–include-dependencies,con dos guiones en lugar de uno en el include,no me pregunte porque pero no anda,saludos
me intereso esa parte de instalar ruby on rails sin tener conexion a internet, porque a mi los metodos con las ultimas actualizaciones no me funcionan, me gustaria que datallaras mas ese paso.
que hosting o servidor tiene instalado ruby on rails? para q corran estas aplicaciones?
[email protected] si alguien me quiere responder ahi esta mi mail
Muy buen articulo
Aunque originalmente desarrollamos en PHP estamos siendo seducidos por RoR
saludos
[…] de Ruby on Rails para programar páginas […]
[…] Que mejor manera de empezar en Ruby on Rails que con un “Hola Mundo” de la mano de Rub�n Davila Santos en Maestros del Web. […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
Muy buena introducción a RoR. Es otro concepto de programación.
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de la carrera, y es: ¿Pero Ada se usa para algo en la vida real? Pues bien, hoy leyendo esta introducción a Ruby On Rails (RoR) de Maestros del web, me he encontrado con estas lineas hablando de los orígenes de RoR: […]
Muy buen articulo, me ha guiado bastante para dar un primer vistazo a este lenguaje.
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
Si señor, muy buen artículo, yo dentro de unos días empezaré con ello, pero antes estaba con Ruby, poco a poco, jeje!, aquí os dejo un pequeño Script que he hecho para la iniciación del Servidor de RoR (Webrick) para una vez que lo tengamos instalado:
# Initialize Ruby on Rails – Webrick Server.
# Ruby Developer Corporation
# by DarkSkull ([email protected])
webrick=ARGV[0]
dir=”RUTA_PROYECTO”
case webrick
when “start”
system(“cd #{dir} && ruby script/server webrick &”)
when “stop”
2.times do
stop=IO.popen(“ps aux”)
if stop.read =~ /\w+\s+(\d+)\s.+ruby script/
system(“kill -9 #{$1}”)
end
end
else
print “| start || stop |\n”
end
Espero que os sirva, lo podéis ejecutar con un simple, “ruby codigo.rb start”, pero antes debéis de indicarle la ruta exacta de vuestro proyecto, además, lo que podéis hacer es compilarlo y hacer que se inicie con el Sistema. 😉
Saludos.
[…] de Ruby on Rails para programar páginas […]
es muy bueno el lenguaje al principio algo complicado me recuerda cuando empeze con php pero cuando tienes el interprete para ejecutarlo y un buen tutorial lo dominas en menos de una semana.
El manejo de cadenas y dejar de declarar variables es muy interesante e importante para mejorar nuestras aplicaciones web.
[…] de Ruby on Rails para programar páginas […]
[…] Symfony está desarrollado en PHP5, se puede utilizar en plataformas *nix (Unix, Linux) y Windows. Requiere de una instalación, configuración y líneas de comando, incorpora el patrón MVC, soporta AJAX, plantillas y un gran número de bases de datos. Es un Framework similar a CodeIgniter de desarrollo rápido. Es una estructura de librerías y clases para programar aplicaciones web. Su base es el Framework de Ruby on Rails. […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] http://www.maestrosdelweb.com/editorial/rubyonrails/ […]
somos un grupo de estudiantes que debemos trabajar en nuestro proyecto de grado DISEÑO DE UNA APLICACION WEB para una isntitucion publica en lenguaje RUBY ON RAILS, pero en honor a la verdad tenemos escaso o nulo conocimiento al particular. De ser posible deseamos orientación sobre posibles tutotiales o personas contacto para obtener mayor informacion al respecto. Gracias.
[…] de Ruby on Rails para programar páginas […]
[…] Introduccion a RoR – http://www.maestrosdelweb.com/editorial/rubyonrails/ […]
Hola lestoy de paso en esta pagina adrentrandome en lo que son los frameworks y en ecncontrado varios aqui muy bien descritos, se agradece la recopilacion de informacion y la forma que se estructura. Gracias espero sigas con esto, por que estoy seguro que habra mas personas como yo buscando informacion asi, Gracias.
[…] Introducción a Ruby on Rails – […]
[…] de Ruby on Rails para programar páginas […]
Bueno yo quería saber si una persona pone en su navegador mi ip mas el puerto 3000 en su navegador (ej : http://209.85.195.104:3000), obtendría lo mismo que si yo pongo http://localhost:3000 desde el mio? Por supuesto con el servidor andando. Muchas Gracias.
[…] de Ruby on Rails para programar páginas […]
[…] apropiada. Igualmente, podemos utilizar lenguajes de programación del lado del servidor como PHP, Ruby on Rails, Java, […]
Si hablamos de reutilizar codigo necesitas crear tus propias librerías con clases y herencia.
Ahora bien, puedes utilizar CodeIgniter es un excelente framework para PHP, pero aún así nada que ver PHP con Ruby
Ruby es otro mundo, te enseña a ordenar bien el código y te hace muy productivo.
En fin, cada quién sus gustos…
Saludos colega!!
De esta parte te perdi:
“Creamos un directorio de trabajo y nos ubicamos dentro de el en la consola.
Rails ejemplo: ….”
No supe como creaste el esqueleto de la aplicacion …
[…] de Ruby on Rails para programar páginas […]
Muy buena introducción a esta nueva tecnología, que en lo particular no conocia en lo absoluto, y como lo mencionas es solo la punta de lanza para iniciar a estudiarlo mas a detalle.
[…] de Ruby on Rails para programar páginas […]
Un poco mal escrito… voy a buscar otro sitio que leer sobre rails.
Interesante el artículo. Lástima la mala ortografía.
[…] una solución de red social que está construida con Ruby on Rails, ofrece código abierto para que los interesados en contruir su comunidad puedan realizarlo de […]
[…] una solución de red social que está construida con Ruby on Rails, ofrece código abierto para que los interesados en contruir su comunidad puedan realizarlo de […]
Excelente tutorial, voy a probar este framework.
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
Hola a todos, esta muy bien ese lenguaje, pero yo tengo una Mac y no veo que exista alguna versión para mac, alguien sabe si existe alguna versión para Mac?
Saludos.
[…] de Ruby on Rails para programar páginas […]
werwer
[…] una solución de red social que está construida con Ruby on Rails, ofrece código abierto para que los interesados en contruir su comunidad puedan realizarlo de […]
hola mira disculpa no se que vercion de ruby gem debo descargar estoe en windows .. cres q e puedas decir en q consiste?? esq tmbn al ratillo quiero mudarme a ubuntu jeje
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
[…] de Ruby on Rails para programar páginas […]
hola amigos, soy programador y contador publico, pero me encanta la programacion y aun mejor launion que hay entre los programadores ya que en los contadores se ve todo lo contrario.. un saludo desde colombia america del sur..
INTERESANTE VER COMO FUNCIONA Y PODER ADMINSTRAR CONTENIDOS
[…] de Ruby on Rails para programar páginas […]