Desde un tiempo a esta parte, varios lenguajes de programación han tomado la iniciativa y se está aupando a las posiciones más altas de los lenguajes más demandados en la comunidad. El caso de hoy es uno de ellos, y no es otro que Ruby on Rails. Creado en 2003 por David Heinemeier Hansson , no tuvo excesiva repercusión en sus inicios. Sin embargo, a día de hoy son muchos los que demandan desarrolladores con conocimientos en Ruby on Rails.

En la propia web del lenguaje definen a Rails como “un entorno de desarrollo web de código abierto que está optimizado para la satisfacción de los programadores y para la productividad sostenible” . Esta productividad se consigue a través de “librerías, automatismos y convenciones destinados a resolver los problemas más comunes a la hora de desarrollar una aplicación web, para que el programador pueda concentrarse en los aspectos únicos y diferenciales de su proyecto en lugar de los problemas recurrentes”.

Se trata de un lenguaje de programación que sigue el paradigma MVC (Modelo Vista Controlador) y que está escrito en Ruby . Los que trabajan con Rails destacan la simplicidad, al necesitar escribir menos código que con otros frameworks, y con un mínimo de configuración. En este sentido, podemos destacar sus dos principales tesis: Don’t Repeat Yorurself (DRY), No te repitas en inglés, y la Convención sobre Configuración . La primera de ellas defiende que las definiciones se realicen una sola vez. Así se evita el llamado código espagueti que provoca errores en las aplicaciones. La Convención sobre Configuración es un paradigma de programación que busca las decisiones que debe tomar el desarrollador.

Gemas de Ruby on Rails

Ruby on Rails cuenta con Gemas, que son plugins o códigos añadidos que traen consigo nuevas funcionalidades como login de usuario o herramientas para el desarrollo como pueden ser Haml y SASS, plantillas basadas en HTML y CSS, respectivamente, muy potentes y sencillas de utilizar. Puedes encontrar el listado de gemas en RubyForge .

Bases de datos en Ruby on Rails

La arquitectura Rails favorece el uso de bases de datos. Aunque por defecto soporta la biblioteca SQLite, se puede trabajar con otras como por ejemplo MySQL, PostgreSQL y Oracle . El acceso que hace Rails a la base de datos es totalmente agnóstico, es decir, el programador no ve nada del proceso entre la vista y la base de datos. Es necesario utilizar un servidor como pueda ser Apache y una base de datos de algún tipo de las que mencionamos anteriormente.

Ruby on Rails 'Hello World'

Para que Ruby nos muestre la pantalla con el famoso Hola Mundo necesitamos como mínimo una vista y un controlador. Para comenzar, debemos ejecutar lo siguiente:

$ rails generate controller welcome index

Una vez hecho esto, generará por nosotros un número de carpetas y archivos que abriremos en nuestro editor de código.

create  app/controllers/welcome_controller.rb
route  get "welcome/index"
invoke  erb
create    app/views/welcome
create    app/views/welcome/index.html.erb
invoke  test_unit
create    test/functional/welcome_controller_test.rb
invoke  helper
create    app/helpers/welcome_helper.rb
invoke    test_unit
create      test/unit/helpers/welcome_helper_test.rb
invoke  assets
invoke    coffee
create      app/assets/javascripts/welcome.js.coffee
invoke    scss
create      app/assets/stylesheets/welcome.css.scss

Ahora debemos abrir el archivo app/views/welcome/index.html.erb en nuestro editor de texto y editarlo para que solo aparezca esto:

<h1>Hello, Rails!</h1>

Ahora debemos enrutar nuestra nueva página a la dirección http://localhost:3000 que crea por defecto. Para ello hay que borrar el archivo index.html que se aloja dentro de la carpeta public de la aplicación. Este archivo es el que se muestra por defecto en lugar del que acabamos de crear. A continuación, debemos indicarle a Rails donde está ubicada nuestra página principal. Para ello, abrimos el archivo config/routes en el editor:

Blog::Application.routes.draw do
    get "welcome/index"
root :to => "welcome#index"

El root :to => "welcome#index" le indica a Rails que debe asociar las peticiones de la raíz de la aplicación a la acción index del controlador welcome y get "welcome/index" le indica a Rails que asocie peticiones de http://localhost:3000/welcome/index a la acción index del controlador welcome . Después de esto, si accedemos a la dirección http://localhost:3000 podremos ver el mensaje que hemos creado.

En la actualidad Ruby on Rails está presente en aplicaciones web como Twitter, Scribd, Hulu, Xing, Soundcloud, Basecamp, o Github entre muchas otras.