lunes, 17 de junio de 2013

Primera aplicación en Ruby on Rails - Primera Parte


En esta entrada explicaremos paso a paso el desarrollo de una aplicación en Ruby on Rails. Nuestra primera aplicación consistirá en un blog muy simple que tendrá posts (publicaciones). En esta primera parte, crearemos una nueva aplicación en Rails y la configuraremos para que nos muestre un mensaje de Hola Mundo. 


Antes de empezar, sugiero revisar un poco la teoría detrás de Rails, en mi entrada Introducción teórica a Ruby on Rails. Si no tienes instalado Rails en tu computadora puedes revisar mi entrada Instalación de Ruby on Rails en Windows y seguir los pasos descritos para instalar Rails.

Este proyecto será desarrollado en el siguiente entorno de configuración.

  • Ruby 1.9.3
  • Rails 3.2.13
  • Windows 7


Creando un nuevo proyecto: Blog


Empezaremos creando nuestro nuevo proyecto que llamaremos Blog. En Rails, para crear un nuevo proyecto, desde la consola escribimos el comando rails new seguido del nombre de nuestro proyecto. En esta caso, vamos a crear un proyecto llamado Blog, por lo que el comando es rails new Blog.


Rails automáticamente crea una carpeta con el nombre de nuestro proyecto y crea una serie de archivos y carpetas que es la estructura de todo proyecto en Rails. Si abrimos el directorio donde creamos nuestro proyecto en Rails podemos ver que se ha creado una carpeta Blog con el siguiente contenido.


Rails crea una serie de carpetas para nuestro proyecto, entre éstas se incluyen:

  • app, carpeta principal donde se guardan los archivos importantes para nuestro aplicativo. Dentro se encuentran:
    • controllers: carpeta donde se almacenan todos nuestros controladores
    • views: carpeta donde se almacenan todas nuestras vistas
    • models: carpeta donde se guardan todos nuestros modelos
    • assets: carpeta donde se almacenan los recursos de nuestro aplicativo web, dentro se encuentran las carpetas images, javascripts and stylesheets donde se deben guardar nuestras imágenes, archivos javascript y hojas de estilo respectivamente.
  • config, carpeta donde se almacenan las configuraciones de la aplicación. Dentro se encuentran:
    • database.yml: archivo de conexión a nuestra base de datos
    • routes.rb: archivo donde se configuran las rutas de nuestro aplicativo
  • public: archivo donde se guardan los recursos públicos de la aplicación (accesible por todos los usuarios a través de URLs)


Probando la aplicación


Podemos probar nuestra aplicación, ejecutando desde consola el comando rails server desde el directorio de nuestra aplicación (carpeta Blog). Si deseamos detener el servidor se hace con el comando Ctrl+C desde la consola de Windows (símbolo del sistema).



Rails por defecto utiliza el puerto 3000, a menos que se haya configurado de otra manera o el puerto se encuentre actualmente en uso, podemos ver nuestra aplicación desde la ruta http://localhost:3000 desde cualquier navegador web.


Como podemos observar, se muestra una página inicial de Rails, esta es la página de inicio por defecto de Ruby on Rails, que muestra la página web index.html ubicada en la carpeta public.


Creando la base de datos


Ahora que sabemos que nuestra aplicación funciona correctamente, es momento de crear nuestra base de datos. La gran mayoría de las aplicaciones en Rails trabaja con una base de datos. La base de datos que usaremos en nuestro proyecto debe ser especificada en un archivo de configuración llamado database.yml ubicado dentro de la carpeta config.  Utilizando nuestro editor de texto favorito abrimos el archivo config/database.yml. (Yo voy a utilizar Sublime Text 2 como editor de texto, puedes usar el de tu preferencia).


Rails automáticamente configura nuestro archivo de configuración de la base de datos para usar la base de datos SQLite, esta es la base de datos por defecto para Rails 3.2.13. En este archivos especificamos la base de datos que deseamos utilizar, por ejemplo, si queremos utilizar MySQL o PostgreSQL. Sin embargo, para esta aplicación utilizaremos la base de datos por defecto, por lo que no modificaremos el archivo. Este archivo contiene tres secciones para los 3 diferentes ambientes en que Rails se ejecuta por defecto:
  • El ambiente de development (desarrollo) es usado para trabajar en los equipos locales o de desarrollo mientras se programa y se trabaja manualmente con la aplicación.
  • El ambiente de test (prueba) es usado cuando se ejecutan pruebas automatizadas.
  • El ambiente de production (producción) es usado para desplegar la aplicación. 

Para crear la base de datos, desde la consola escribimos el comando rake db:create.


Este comando crea nuestra base de datos en blanco dentro de la carpeta db.


"Hola Mundo" en Rails


En esta parte cambiaremos la página de inicio de la aplicación por una página programad por nosotros que muestre un mensaje de "Hola Mundo". (¿Por qué un "Hola Mundo"? Revisa este enlace) Para hacer que Rails muestre un mensaje de "Hola Mundo" se necesitan crear al menos una vista y un controlador. Afortunadamente, Rails nos da las facilidades para crear una vista y un controlador con un solo comando. Crearemos un controlador llamado home con una vista llamada inicio. Desde la consola, escribimos el comando rails generate controller home index.


Rails create una serie de archivos por nosotros, incluyendo app/views/home/index.html.erb. Este archivo es  una de las vistas de nuestra aplicación y es la plantilla que se usa para mostrar los resultados de la acción index de nuestro controlador home. A continuación, abrimos la vista app/views/home/index.html.erb borramos el contenido y agregamos el siguiente código HTML: <h1>Hola Mundo</h1>.


Ahora que tenemos nuestro controlador y vista generadas, debemos de configurar Rails para que nos muestre el mensaje de Hola Mundo. En este caso, queremos mostrar el mensaje cuando vayamos a la página de inicio de nuestra aplicación en vez de la página por defecto de Rails (es decir, mostrar Hola Mundo cuando vayamos a la dirección http://localhost:3000). Para ello tenemos que eliminar el archivo public/index.html y luego procedemos a indicarle a Rails dónde se encuentra nuestra página de inicio. Entonces, tenemos que editar el archivo config/routes.rb. Este archivo contiene todas las rutas de nuestra aplicación que almacena entradas en un DSL (Domain-Specific languague o Lenguaje de dominio específico) que le dice a Rails cómo conectar las peticiones de los navegadores a un controlador y una acción en particular.

Abrimos el archivo config/routes.rb y encontramos la línea que comienza con root :to y la descomentamos (eliminamos el símbolo #) y escribimos root :to => 'home#index'. Debe verse de la siguiente manera.


Ahora cuando navegamos a la URL de nuestra aplicación en http://localhost:3000 podemos ver que nos muestra el mensaje de Hola Mundo. Recuerda que si detuviste el servidor debes de volver a iniciarlo ejecutando el comando rails server desde la consola de Windows.


Y finalmente ahora Rails nos muestra nuestro mensaje de Hola Mundo. Con esto concluyo esta primera parte de nuestra primera aplicación con Ruby. Recapitulando, en esta primera parte aprendimos a:
  • Crear un nuevo proyecto en Rails
  • Explorar la estructura base de un proyecto Rails
  • Crear una base de datos en blanco
  • Crear un controlador y una vista
  • Cambiar la ruta de inicio de nuestra aplicación
  • Ejecutar y detener el servidor de Rails




1 comentario: