miércoles, 18 de noviembre de 2009

Ruby On Rails

Siguiendo la línea del post anterior, vamos a hablar hoy de Ruby on Rail y de como echarlo a andar de un modo fácil y rápido bajo Ubuntu 9.10.

Como ya vimos, habrá dos posibilidades de instalación para Ruby on Rails ya que recuerdo que Debian tiene sus propias políticas respecto a RubyGems. Teníamos ya instalado el comando "gem" para poder utilizarlo a nuestro antojo así que podremos instalarlo mediante este comando ejecutando en la consola lo siguiente:

    $ sudo gem install rails --include-dependecies

Pero si seguimos utilizando los paquetes que Ubuntu pone a nuestra disposición a través de los repositorios como hemos hecho para instalar tanto Ruby como RubyGems. Para la instalación desde los repositorios bastaría con ejecutar:

    $ sudo apt-get install rails

Esto instalará en nuestro sistema muchos paquetes necesarios para el correcto funcionamiento de Ruby on Rails pero, entre todos ellos, cabe destacar el uso de las bases de datos provistas por sqlite3 en lugar de MySQL.

Una vez instalado "Rails" vamos a proceder a testear que funciona correctamente. Primero debemos crear un proyecto de Rails. Esto lo haremos de la siguiente manera:

    $ rails nombreDelProyecto

Lo cual nos creará, en la ruta donde lo hayamos ejecutado, una carpeta "nombreDelProyecto" donde se encontrarán todos los datos relacionados con este nuevo proyecto. Esta carpeta tendrá la siguiente estructura:

/nombreDelProyecto
    app/
        controllers/
        helpers/
        models/
        views/
    config/
        environments/
        initializaers/
        locales/
    db/
    doc/
        api/
    lib/
        tasks/
    log/
    public/
        images/
        javascripts/
        stylesheets/
    script/
        performance/
        process/
    test/
        fixtures/
        functional/
        integration/
        performance/
        unit/
    tmp/
        cache/
        pids/
        sessions/
        sockets/
    vendor/
        actionmailer/
        actionpack/
        activemodel/
        activerecord/
        activeresource/
        activesupport/
        rails/
        railties/

Cada directorio cumple una función específica y aquí os adjunto una descripción breve de algunos de ellos por cortesía de Maestros del Web:

app: Aquí se almacenaran los componentes de nuestra aplicación: vistas y 'helpers', controladores y modelos.
config: Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).
public: Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.
script: Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician el servidor web (server).

Para ejecutar el servidor de pruebas que viene con Ruby, Webrick (gnome posee una guía en español bastante interesante sobre el AQUÍ) para poder hacer pruebas con nuestro nuevo proyecto habrá que llamar al archivo "server" que se encuentra en la carpeta scripts/ descrita anteriormente. Para ello bastará con introducirnos en el directorio /nombreDelProyecto y ejecutar dicho script anteponiendo el comando ruby:

    $ cd nombreDelProyecto
    $ ruby script/server

Ya tenemos un servidor de pruebas corriendo en nuestro sistema local. Para acceder a él y ver que nuestro proyecto a sido creado correctamente y funciona debemos acceder mediante el navegador web a la direccion local en el puerto 3000 que es donde corre el server de prueba por defecto:

    http://localhost:3000

Y debería mostrarnos algo como esto:


Servidor básico de RoR

Ya tenemos a nuestro servidor corriendo en nuestro pc correctamente. Ahora viene lo de siempre cuando se empieza, desarrollar un Hola Mundo. Primero crearemos un controlador tecleando en el directorio nombreDelProyecto este comando:

    $ ruby script/generate controller test
        exists  app/controllers/
        exists  app/helpers/
        create  app/views/test
        exists  test/functional/
        create  app/controllers/test_controller.rb
        create  test/functional/test_controller_test.rb
        create  app/helpers/test_helper.rb

Como podemos ver esto nos a creado algunos archivos nuevos en el esqueleto de nuestra aplicación. Vamos a editar primeramente el archivo nombreDelProyecto/app/controllers/test_controller.rb sustituyendo su contenido por el siguiente método:

    class TestController < ActionController::Base
        def index
        end
    end

Ahora crearemos la vista para esta acción que acabamos de crear añadiendo un nuevo archivo en nombreDelProyecto/app/views/test/ llamado index.rhtml en el que introduciremos el texto que queramos mostrar en nuestro HolaMundo. Por ejemplo:

<h1> Un saludo de<a href="http://devnewbies.blogspot.com"> DevNewBies</a> desde Ruby On Rails!</h1>

Guardamos el archivo y ya podemos probarlo accediendo a http://localhost:3000/test/ (No olvidemos mantener a Webrick corriendo en nuestro pc).


Ya tenemos listo nuestro HolaMundo sobre RoR pero, no es lo mas ortodoxo que los usuarios tengan que acceder a tu web teniendo que añadir /test/ al final del nombre del dominio. Para paliar esto debemos editar el archivo nombreDelProyecto/config/routes.rb de la siguiente forma:

Buscamos las líneas donde pone:

  # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
  # map.root :controller => "welcome"

La primera de ellas nos recuerda que si cambiamos la ruta servida por defecto, debemos eliminar/renombrar el archivo que se encuentra en nombreDlProyecto/public/index.html. Yo lo renombré a index.old para no perderlo por si me da por restaurarlo por cualquier motivo. Una vez eliminado/renombrado este archivo, descomentaremos la segunda línea y modificaremos la palabra "welcome" por la palabra "test" para que sea éste el directorio listado como raíz. Una vez hecho esto, ya podemos acceder nuevamente a Webrick mediante http://localhost:3000/ y nos mostrará nuestro HolaMundo. =)

Free Image Hosting at www.ImageShack.us

Si te interesa Ruby y RubyOnRails Aquí dejo unos enlaces interesantes:

Web de RoR: http://rubyonrails.org/

RoR en español:
        http://www.ruby-forum.com/forum/22
        http://www.forosdelweb.com/f105/
        http://sobrerailes.com/


germaNRG'09

1 comentario:

  1. te hago una pregunta germán. Si yo pongo a correr el server no cierto con script/server y pongo http://localhost:3000 en el navegador entonces obtengo la pagina de inicio esa de la imágen. Y si yo en la barra del navegador le digo a un contacto por messenger que ponga mi ip con el puerto 3000 . por ej: http://209.85.195.104:3000 ( esa no es mi ip, es la de google, pero es un ej.) La pregunta es, mi contacto puede ver la misma pagina desde su navegador ?

    ResponderEliminar