viernes, 25 de marzo de 2016

Ruby on Rails

Cabe destacar que la instalación de Ruby y Rails se realiza en un ambiente Linux, específicamente Ubuntu 14.04.

Ruby 2.2

Lo primero que haremos es instalar ciertas librerías y otras dependencias necesarias a futuro.

sudo apt-get install build-essential libssl-dev libyaml-dev libreadline-dev openssl curl git-core zlib1g-dev bison libxml2-dev libxslt1-dev libcurl4-openssl-dev

Crearemos un directorio y luego, dentro de ese mismo directorio vamos a descargar la versión 2.2 de ruby.

mkdir ~/ruby
cd ~/ruby
wget http://cache.ruby-lang.org/pub/ruby/ruby-2.2.2.zip
unzip ruby-2.2.2.zip
cd ruby-2.2.2

Seguramente te preguntarás que hiciste en esas 5 líneas, la respuesta es sencilla. Primero creamos un directorio en el home y luego entramos, una vez dentro del directorio descargamos la versión 2.2 de ruby con el comando wget (si tienes algún error al ingresar este comando, prueba instalando wget en otra terminal para no tener problemas con la instalación de ruby), en la cuarta línea de comandos lo que estamos haciendo es descomprimir el zip de ruby para luego, en la quinta y última línea de comandos ingresar al directorio que contiene el archivo zip.

Ahora, haremos correr el script “configure” (tener en cuenta que este demora un tanto).

./configure

Luego, ejecutaremos la utilidad Make, que utilizará el Makefile para generar el programa ejecutable (esto también demorará un poco, como el comando anterior)

make

Lo que necesitamos ahora es copiar los binarios compilados en el directorio /usr/local/bin/, para ello utilizaremos el comando sudo para darle más "permisos".

sudo make install

¡Y listo! Ya tenemos Ruby 2.2 instalado en nuestro computador. Ahora podemos borrar el directorio ruby con todo su contenido (si así lo quieren).

cd ..
rm -rf ~/ruby

Rails 4.2

Comencemos ahora con Rails:

sudo gem install --no-rdoc --no-ri rails

Con esa línea de comando basta para poder comenzar a trabajar en Rails. Ten en cuenta de que demorará varios minutos así que se paciente.

Primeros pasos

Para comenzar a utilizar el Framework Rails, debes tener en cuenta que necesitas un motor de base de datos, en este caso trabajaremos con MySQL (si no lo tienes, ve a la pestaña "Programas" para instalarlo). Una vez instalada la base de datos podemos comenzar.

rails new proy -d mysql

El comando "new" se utiliza para generar un nuevo proyecto en Rails; "proy" corresponde al nombre que nosotros le hemos asignado a nuestro proyecto (puede ser cualquier otro nombre). Por último, "-d mysql", genera un ficheco llamado "database.yml", que se alojará dentro del directorio config/ y agregará la gema "mysql2".

Creo que hemos utilizado algunos términos que te causarán dudas, por ejemplo "gema". Las gemas vendrían siendo una especie de librerías, las cuales se guardan dentro de un fichero llamado "Gemfile" (es el caso de la gema "mysql2").

Antes de ver a Rails en acción, debemos hacer 2 cosas muy importantes: la primera es crear un usuario en MySQL y la segunda es configurar el proyecto con el usuario que acabamos de crear en la base de datos (ya que no utilizaremos el usuario root). Antes de comenzar con el paso 1 es necesario ingresar a MySQL.

mysql -u root -p

Una vez dentro, crearemos el usuario y le daremos los permisos para manipular la base de datos 'proy_development' y 'proy_test'. Estas bases de datos no existen aún, Rails se encargará de ellas más adelante.

GRANT ALL ON proy_development.* TO proy@localhost IDENTIFIED BY 'proy123';
GRANT ALL ON proy_test.* TO proy@localhost IDENTIFIED BY 'proy123';

Luego de crear al usuario con éxito iremos al directorio donde se encuentra nuestro proyecto.

rake db:create

Lo que Rails ha hecho en esa línea de código es crear las dos bases de datos que anteriormente le dijimos al usuario que podía manipular ("proy").

Para estar seguros de que todo marcha a la perfección, ingresaremos a MySQL pero, esta vez lo haremos con el usuario que creamos anteriormente.

mysql -uproy -pproy123

Dentro de MySQL deberían estar alojadas las dos bases de datos que creamos con la ayuda de Rails: 'proyecto_development' y 'proyecto_test'. Para ello utilizaremos el comando "show" (si no puedes vizualizar las bases de datos, intenta crearlas nuevamente).

show databases;

Para poder continuar sin inconvenientes, es necesario explicar dos de los comandos más utilizados: rails y rake. En el caso de rails, utilizaremos 4:

- rails generate o rails g: genera ficheros tales como assets, model, controller, helper, migration y scaffold, entre otros.
- rails console o rails c: llama a la consola de ruby para manipular las clases del proyecto.
- rails server o rails s: inicia el servidor de rails que, por defecto, corre en el puerto 3000.
- rails dbconsole o rails db: se conecta a la base de datos con la que estamos trabajando (si no ingresamos ningún argumento correrá con la base de datos development).

Pensemos por un momento que nuestro proyecto contará con productos, los cuales tendrán asociada una categoría (una categoría tendrá muchos productos y, un producto pertenecerá a una y solo una categoría). De los productos se desea registrar su código de barra, nombre, precio de compra y categoria a la que pertenece. Lo primero que debemos hacer en Rails es crear el MVC (Modelo-Vista-Controlador) con el CRUD (Create-Read-Update-Delete) para cada tabla.

rails g scaffold categoria nombre:string

rails g scaffold producto nombre:string p_compra:float categoria_id

Lo que acabamos de hacer en esas dos líneas de comando es crear el modelo, el controlador, la vista (bajo la lógica DRY, don't repeat yourself) y lo más importante de todo: la migración. Las migraciones corresponden a una herramienta que se encarga de crear las tablas, brindando una enorme flexibilidad a la hora de querer cambiar el motor de base de datos ya que, la migración depende de la gema "mysql2" y del fichero "database.yml". El fichero de migración podemos encontrarlo en db/migrate/aaaammddhhcreate_table.rb (el nombre de la tabla varía según lo que coloquemos).

Para terminar con la creación de las tablas categoria y producto, debemos migrarlas o crearlas.

rake db:migrate

Cualquier duda que tengas escríbela en la caja de comentarios que está un poco más abajo, trataré de responderla a la brevedad.

No hay comentarios:

Publicar un comentario