viernes, 27 de mayo de 2016

Login de usuarios en Ruby on Rails

Para el login de usuarios se ocupará una gema llamada "devise" en este caso, iremos a nuestro archivo gemfile (que se encuentra en la raíz del proyecto) y agregar la línea:

  gem "devise"


(clic para agrandar)


Después de esto, como cualquier gema, será necesario ejecutar en la terminal (situado en la carpeta correspondiente del proyecto) el comando bundle install para poder instalar la gema correctamente. Una vez instalada, correremos un generador de instalación, esto, porque algunas gemas incluyen generadores para instalar todo el proceso de la gema, esto será con:

  rails g devise:install

Después de correr este comando, la terminal nos arrojará 4 acciones que debemos seguir para tener correctamente funcionando devise:

1.- Tener las acciones por default del action_mailer para poder enviar correos referentes a la autenticación del usuario. Abriremos el archivo que indica: config/environments/development.rb y agregaremos:

  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

**Ruby on Rails trabaja con 3 entornos: desarrollo (que es el del ejemplo), test y producción, por lo cual, si se está trabajando en producción, será necesario cambiar 'localhost' por el dominio de la aplicación y el puerto 3000 por el 80


2.- Definir una URL para el root del sitio, del cual necesitaremos un controlador y una acción, con su respectiva vista, como en este otro apunte:


3.- Activar los flash messages para poder visualizar las alertas a la hora de loguearse. Aquí, deberemos icluirlas en alguna parte de nuestro código, en mi caso, las ubiqué en el layout principal para que cargara en todas las vistas:

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>



4.- Este paso solo se tomará en cuenta si se está haciendo el deploying en heroku usando rails 3.2

5.- El paso número 5, será opcional por si se quieren customizar las vistas, aunque parezca que es obvio que debemos hacerlo, puede que por el momento se necesite completar la funcionalidad y después darle diseño, y podremos correr el comando rails g devise:views en cualquier otro momento.


Una vez completados los 5 pasos, tendremos que tener un modelo, en este caso, podemos cambiar User por cualquier otro en particular, no es necesario que nuestra tabla se llame users, el nombre es abierto a cualquier otro:

  rails g devise User

Esto nos estaría generando un modelo llamado user y una tabla llamada users (por la convención de Rails de generar el plural, por eso es muy recomendable que siempre se usen términos en inglés para que rails pueda generar el plural en base a lo escrito). De igual manera, se crea una migración en db/migrate/201806..._devise_create_users.rb así que será necesario correr la migración, así que en la terminal se ejecutará:

  rake db:migrate

De esta manera, se ha creado con éxito un login de usuarios, ahora podemos ir al navegador e ingresar a users/sign_inusers/sign_up y verificaremos que ya están activos. Podemos crear algunos usuarios para comprobar su funcionamiento, y que las alertas también están haciendo su trabajo:

(clic para agrandar)

(clic para agrandar)

(clic para agrandar)



** Con rails g devise:views se crearían las vistas correspondientes a estas pantallas, y podemos modificarlas a gusto, ahora que se verificó que todo funciona, sería buen momento para correrlo.






No hay comentarios:

Publicar un comentario