Tiempo atrás hice, muy brevemente, una introducción acerca Ruby on Rails. En esta ocasión, con el objetivo de dar los primeros pasos sobre rieles, veremos una instalación básica y una aplicación de ejemplo.

La instalación la realicé sobre un Ubuntu 8.04 Hardy Heron, a través del Gestor de Paquetes Synaptic. Desde el mismo busqué y seleccioné rails (MVC Based framework geared for web application development) y. marque los paquetes que necesitaba (dependencias).

Una vez instalado, abrí una consola y ejecuté el comando rails para crear el proyecto 'mi_primer_rail', este comando me creó la estructura de directorios, scripts y archivos y otros archivos de configuración para la aplicación:

$ rails mi_primer_rail
      create 
      create  app/controllers
      create  app/helpers
      create  app/models
      create  app/views/layouts
      create  config/environments
      create  config/initializers
      create  db
      create  doc
      create  lib
      create  lib/tasks
      create  log
      create  public/images
      create  public/javascripts
      create  public/stylesheets
      create  script/performance
      create  script/process
      create  test/fixtures
      create  test/functional
      create  test/integration
      create  test/mocks/development
      create  test/mocks/test
      create  test/unit
      create  vendor
      create  vendor/plugins
      create  tmp/sessions
      create  tmp/sockets
      create  tmp/cache
      create  tmp/pids
      create  Rakefile
      create  README
      create  app/controllers/application.rb
      create  app/helpers/application_helper.rb
      create  test/test_helper.rb
      create  config/database.yml
      create  config/routes.rb
      create  public/.htaccess
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/boot.rb
      create  config/environment.rb
      create  config/environments/production.rb
      create  config/environments/development.rb
      create  config/environments/test.rb
      create  script/about
      create  script/console
      create  script/destroy
      create  script/generate
      create  script/performance/benchmarker
      create  script/performance/profiler
      create  script/performance/request
      create  script/process/reaper
      create  script/process/spawner
      create  script/process/inspector
      create  script/runner
      create  script/server
      create  script/plugin
      create  public/dispatch.rb
      create  public/dispatch.cgi
      create  public/dispatch.fcgi
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/index.html
      create  public/favicon.ico
      create  public/robots.txt
      create  public/images/rails.png
      create  public/javascripts/prototype.js
      create  public/javascripts/effects.js
      create  public/javascripts/dragdrop.js
      create  public/javascripts/controls.js
      create  public/javascripts/application.js
      create  doc/README_FOR_APP
      create  log/server.log
      create  log/production.log
      create  log/development.log
      create  log/test.log
$
$ cd mi_primer_rail
$

Recordando que Ruby on Rails utiliza en patrón MVC, utilicé el script generate y el argumento controller para crear el controlador 'hola':

$ script/generate controller hola
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/hola
      exists  test/functional/
      create  app/controllers/hola_controller.rb
      create  test/functional/hola_controller_test.rb
      create  app/helpers/hola_helper.rb
$

Con gedit edité el archivo del controlador .rb y creé el archivo .rhtml para la vista:

$ gedit app/controllers/hola_controller.rb

class HolaController <ApplicationController
    def index
        @hello="Hola Rails!"
    end
end

$ gedit app/views/hola/index.rhtml

<%= @hello %>

Para este ejemplo no utilicé base de datos, de todas formas edité el archivo de configuración database.yml, indicando nombre de usuario y contraseña y modificando la base de datos 'mi_primer_rail_development' por 'test'. Está de más decir que en mi sistema tenía intalada una base de datos mysql, aunque de todas formas rails permite utilizar varias bases de datos, como mysql, postgresql, oracle o sqlite.

$ gedit config/database.yml

development:
  adapter: mysql
  encoding: utf8
  #database: mi_primer_rail_development
  database: test
  username: mi_user
  password: mi_pass
  socket: /var/run/mysqld/mysqld.sock

Finalmente corrí el server de aplicaciones WEBrick con el script server.

$ script/server
=> Booting WEBrick...
=> Rails application started on http://127.0.0.1:3000
=> Ctrl-C to shutdown server; call with --help for options

Desde mi browser ejecuté: http:\\localhost:3000\hola, donde '3000' es el puerto al que escucha el servidor WEBrick y 'hola' es el nombre del controlador y pasó lo que tenía que pasar: