lunes, 8 de enero de 2018

Instalación y puesta en Marcha de Ruby on Rails

Hola!

Hace algo de tiempo que no estoy por aquí, sin embargo, hace unos días, me encargaron adentrarme en el mundo de Ruby on Rails y tuve que efectuar las configuraciones necesarias para dejarlo a punto en Windows, por lo que me pareció buena idea compartirlo con ustedes. Por tanto, basta de misterio y ¡a por ello!

Paso 1: Descarga del software necesario.

En primer lugar, será necesario descargar el instalador de Ruby On Rails desde la página de Rails Installer (http://railsinstaller.org/en). Al momento de esta instalación, se descargó la versión 2.2 (figura 1). Comprende los siguientes complementos:

  • Ruby 2.2.6
  • Rails 5.0
  • Bundler
  • Git
  • Sqlite
  • TinyTDS
  • SQL Server Support
  • DevKit



Figura 1. Descarga de Ruby

Teniendo lista la descarga, es necesario descargar la consola de git desde la página oficial (https://git-scm.com/), esto con el objetivo de ejecutar de una manera práctica los comandos necesarios de Ruby. Es posible descargarla directamente desde aquí.


Paso 2: Instalación de los componentes:

Continuando con el proceso, es necesario ejecutar el instalador de ruby previamente descargado:

Figura 2. Inicio de instalación de Ruby
Se debe aceptar las licencias y presionar “siguiente”, en la siguiente ventana, será necesario que las opciones para instalar Git y añadir los ejecutables se encuentren marcados (Figura 3).



Figura 3. Se deben marcar ambas casillas


Figura 4. Proceso de instalación
Al terminar la instalación (Figura 5), es recomendable iniciar la configuración de la consola de git y ssh.


Figura 5. Seleccionar la configuración de git
Al configurar git, solicitará el nombre de usuario y un correo electrónico (figura 6).

Figura 6. Configurando git

Al finalizar el proceso, la consola proporcionará una clave de seguridad. Es altamente recomendable almacenarla en algún archivo para su posterior uso.
Este proceso instalará también git, por lo que no es necesario instalar el que se descargó. Esta indicación se dio en el caso de que la instalación fallara o se omitiera algún paso de los indicados.
Para verificar que la instalación se efectuó satisfactoriamente, se deberá abrir la consola de git y escribiendo el comando “Rails -v”, el cual retornará la versión de Ruby instalada en el sistema. Si muestra un mensaje similar al de la figura 7, entonces se ha concluido satisfactoriamente el proceso.

Figura 7. Comprobar la versión de Ruby


Paso 3: Generación del CRUD “Person”

Para este proceso, se tomará como base de datos MySQL y se utilizará la base de datos “persontest”. El código de creación es el siguiente:

CREATE DATABASE persontest /*!40100 COLLATE 'utf8_spanish_ci' */;
use persontest;

Habiendo creado la base de datos, es necesario abrir la cosola de git y situarse en el directorio “c/Sites”, el cual se crea por defecto cuando se instala Ruby.
Es necesario ejecutar el comando “rails new persontest”: esta instrucción generará todos los archivos necesarios para el proyecto (Figura 8).


Figura 8. Construir el proyecto

Al finalizar el proceso, debe aparecer una ventana similar a la de la figura 9.

Figura 9. Construcción del proyecto finalizada

El proyecto se ha generado en c:\Sites\persontest, esta carpeta se puede abrir con cualquier editor de texto, para este caso se utilizará sublime text 3.
Llegados a este paso, es necesario configurar la gema de MySQL junto con la opción de SQLite para testing, en el archivo “Gemfile” ubicado en raíz del proyecto (figura 10) y la conexión a la base de datos en el archivo “config/dabatase.yml” (figura 11).


Figura 10. Configuración de gema para MySQL


Figura 11. Configuración de conexión a MySQL

Es necesario, una vez hechas estas configuraciones, decirle a Rails que debe descargar e instalar las librerías que se le indicaron. Esto se logra ejecutando los comandos “bundle update” y “bundle install”. Al finalizar debe mostrarse algo similar a la figura 12.


Figura 12. Se ha ejecutado bundle update y bundle install

A continuación, se procederá a generar el “scaffold” (se le llama scaffold al proceso de construcción de código necesario para una funcionalidad simple) de la clase persona, con los atributos mencionados al principio (figura 13).
El comando a ejecutar es: rails generate scaffold person firstName:string lastName:string


Figura 13. Generación de Scaffold

Ejecutado el proceso anterior, es necesario llevar a cabo el proceso de “migrado”, es decir, indicarle a Rails que debe conectarse a la base de datos y construir el modelo indicado. Esto se logra con el comando: rails db:migrate (figura 14).


Figura 14. Ejecución del migrado

Lo anterior generará la tabla “people” en la base de datos (véase CoC Ruby para mayor entendimiento) y se mostrará algo similar a la figura 15.

Figura 15. Generación satisfactoria del modelo en la base de datos

Paso 4: Arrancar el servidor y ver el módulo en acción

Lo primero a seguir es arrancar el servidor, esto se logra ubicándose en la carpeta generada por ruby (C:\Sites\persontest) y ejecutando el comando “rails s”. Es recomendable otorgar los permisos de firewall (figura 16).

Figura 16. Arrancando el servidor y otorgando permisos del Firewall

Arrancado el servidor, es necesario abrir el navegador e ir a la dirección “localhost:3000”, y se mostrará una ventana similar a la figura 17. Esto indica que se ha efectuado el proceso de instalación satisfactoriamente, además de que la aplicación está lista para usarse.

Figura 17. Servidor de Rails arrancado y listo para usarse


Para verificar lo que se acaba de contruir, es necesario ir a la dirección http://localhost:3000/people, en donde se encuentra la funcionalidad recién implementada. Debiéndose ver una imagen similar a la que muestra la figura 18.

Figura 18. Scaffold de la clase persona

Nota:
Si se presenta un error similar al de la figura 19, entonces debe ir al archivo “C:\Sites\persontest\app\views\layouts\application.html.erb” y cambiar el parámetro “application” a “default”, en las líneas 7 y 8.

Figura 19. Error al mostrar la vista del proyecto


Espero te sea de utilidad ;)