#310 Getting Started with Rails
Ruby on Rails es un framework de desarrollo muy potente pero puede intimidar a aquellos que tratan de aprenderlo por primera vez. En esta serie de episodios solemos tratar temas de nivel medio, y a veces puede resultar difícil encontrar un sitio concreto a donde los nuevos programadores de Rails puedan acudir a resolver sus dudas. En este episodio lo resolveremos.
Instalación de Rails
La mejor forma de instalar Ruby y Rails bajo Windows es utilizando el RailsInstaller, que es un único paquete ejecutable que instalará todo lo necesario para montar un entorno de desarrollo en Rails, por lo que tras hacerlo se puede saltar el resto de esta sección.
Los que trabajen sobre OS X preferirán instalar Homebrew antes de instalar Rails porque hace que sea mucho más fácil instalar todas las dependencias. Se instala lanzando una única orden, que se puede encontrar en la página de instalación. Tras instalar Homebrew podemos usarlo para instalar varios paquetes útiles, entre ellos git
para control de versiones y sqlite
para la base de datos. Se trata de paquetes necesarios que podemos instalar ejecutando esta orden:
$ brew install git sqlite
Los que utilicen Linux pueden instalar Sqlite y Git con el gestor de paquetes de la distribución.
Lo siguiente es instalar la última versión de Ruby. En OS X o Linux lo más fácil es hacerlo con RVM, que también se instala con una única orden que podremos encontrar en la página de RVM. Tras la instalación de RVM podremos escoger la versión de Ruby que queramos utilizando la orden rvm
. Por ejemplo para instalar la última versión de Ruby, la 1.9.3, podemos lanzar
$ rvm install 1.9.3
Con esto se descargará y compilará Ruby 1.9.3, tras lo cual podremos usar esta versión por defecto ejecutando
$ rvm use 1.9.3 --default
La opción --default
es la que hará que esta sea la versión de Ruby por defecto en nuestro sistema.
Para los que tengan más conocimientos de UNIX existe una alternativa a RVM llamada rbenv que es un poco más costosa de configurar pero sigue un enfoque más ligero a la hora de instalar múltiples versiones de Ruby.
Ya podemos ejecutar la orden ruby
para estar seguros de que tenemos la versión correcta en el sistema instalada por defecto.
$ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
Tars lo cual podemos pasar a instalar Rails ejecutando
$ gem install rails
Con esta orden se instalará la última versión de Rails (3.1.3 a día de hoy), si queremos instalar una versión específica de Rails podemos utilizar la opción --version
.
$ gem install rails --version 2.1
Es muy importante instalar la misma versión de Rails que la del tutorial que estemos siguiendo. Si, por ejemplo, tenemos un libro escrito para Rails 2.3 deberíamos instalar dicha versión. Si no estamos seguros de qué versión de Rails sigue nuestro tutorial, en la página de Ruby on Rails en la wikipedia existe una tabla que muestra las fechas de publicación de las versiones principales de Rails, así que si sabemos la fecha de publicación de nuestro tutorial podremos deducir la versión de Rails para la que estaba escrito. Podemos comprobar qué versión de Rails hemos instalada lanzando la siguiente orden:
$ rails -v Rails 3.1.3
Conviene saber, si tenemos que instalar varias vesiones de Rails, que algunas son incompatibles entre sí. Para solventar este problema podemos utilizar gemsets de RVM e instalar versiones separadas de Ruby cada una con su propia instalación de Rails.
Tutoriales
Tras la instalación de Rails es hora de seguir algún tutorial, y un buen sitio para empezar son las Guías de Ruby On Rails que tienen una sección introductoria donde veremos cómo crear una sencilla aplicación de blog con lo que nos haremos la idea de qué necesitamos para crear una aplicación pequeña. Es perfectamente comprensible que nos veamos abrumados a la hora de seguir un tutorial como este, pero debemos tener en cuenta que no es necesario entender hasta el más mínimo detalle al principio. Es muy importante aquí la perseverancia.
Rails For Zombies es otro tutorial que merece la pena seguir. Se trata de una forma divertida e interactiva de ver todas las partes de que se compone una aplicación Rails. También es interesante ver The Ruby on Rails Tutorial, que cubre casi todos los aspectos relacionados con Rails y temas como Git y Heroku. No es necesario acometer todo este material de golpe, pero merece la pena echarle al menos un vistazo.
Divide y vencerás
Si después de probar un par de tutoriales nos encontramos con que seguimos algo perdidos lo mejor es seguir un enfoque de "divide y vencerás": Rails utiliza muchas tecnologías y puede ser difícil aprenderlas todas a la vez. En este caso tal vez sea mejor enfocar nuestros esfuerzos sobre cada tecnología de forma aislada. Las aplicaciones Rails utilizan Ruby, HTML, CSS y SASS, JavaScript y CoffeeScript, y SQL. Si conocemos los fundamentos de todas estas tecnologías nos será mucho más fácil aprender Rails. Para muchos lo más difícil será el propio lenguaje Ruby. Y si somos recién llegados al mundo de la programación será bueno leer el libro Learn to Program de Chris Pine donde aprenderemos los fundamentos de Ruby así como conceptos generales de programación.
La web Try Ruby es una forma entretenida e interactiva de aprender los fundamentos de Ruby, y no debemos olvidar que podemos ejecutar código de Ruby interactivamente en el terminal ejecutando irb
. Dentro de una aplicación Rails podemos ejecutar rails console
para cargar el entorno de dicha aplicación, siendo esta la mejor forma de experimentar con nuestras aplicaciones.
Disponemos de varios retos para afilar nuestros conocimientos de Rails. Nuestro viejo amigo Ruby Quiz tiene un amplio archivo de desafíos para los que podremos escribir una solución. También hay ejercicios en Ruby Learning Blog, que incluye la lista en la página principal. Hay ejercicios más modernos (pero más difíciles) en Codebrawl. Por último, Ryan Bates ha creado el Ruby Warrior project que nos resultará de ayuda a la hora de aprender Ruby.
Nuestra propia aplicación
Seguir diversos tutoriales y ejercicios está muy bien pero no resulta tan inspirador ni gratificante como crear nuestra propia aplicación Rails. Si ya tenemos una idea para una aplicación, ¿por dónde deberíamos empezar? Lo mejor es empezar por la interfaz de usuario, bocetando cada una de las páginas de nuestra aplicación bien mediante lápiz y papel o bien mediante un programa como Balsamiq Mockups. Con esto nos será más fácil dividir nuestra aplicación en recursos. Por ejemplo, por lo general un formulario servirá para crear o editar un recurso y otras páginas listarán los recursos o bien mostrarán un único recurso. Con esto podremos crear un modelo y un controlador para cada uno de estos recursos, y ya estaremos en vías de crear nuestra primera aplicación Rails.
Según vayamos construyendo nuestra aplicación nos iremos encontrando con áreas que no están cubiertas por los tutoriales que hemos seguido. Aquí es donde entra en juego RailsCasts. Se trata de una gran referencia a la hora de incorporar ciertas funcionalidades en nuestra aplicación como por ejemplo autenticación, administración, etc. Se incluye el código fuente de la mayoría de los episodios por lo que podremos descargar y probar el código de cada episodio. Los episodios más recientes incluyen versiones del proyecto "antes" y "después" para que podamos ver los cambios.
The Ruby Toolbox es otro recurso al que acudir. Proporciona un listado de gemas que sirven para acometer diferentes tareas en Ruby y Rails. También merece la pena seguir el resto de Rails Guides donde se cubren muchos temas y podremos mejorar nuestro conocimiento de todas las áreas que cubre Ruby on Rails. Por último, conviene no olvidar el sitio de la API de Ruby on Rails a donde podremos acudir para encontrar toda la documentación relevante a cualquier método específico de Rails.
En busca de ayuda
Es seguro que a lo largo del desarrollo de nuestra aplicación nos encontraremos con problemas que no seremos capaces de resolver por nosotros mismos. En estas situaciones conviene acudir a las comunidades de Ruby y Rails. Un buen sitio por donde empezar es en la lista de correo Rails Talk. Se pueden realizar búsquedas en el archivo para ver si alguien se ha topado con el mismo problema y si no, lanzar nuestra pregunta. StackOverflow es otro buen lugar donde preguntar cuestiones relacionadas con la programación, pero no debemos olvidarnos de etiquetar nuestras consultas con ruby-on-rails.