Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Ruby on Rails
Code

Explorando Devise, Parte 2

Difficulty:BeginnerLength:ShortLanguages:
This post is part of a series called Exploring Devise.
Exploring Devise, Part 1

Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)

Introducción

En la primera parte del tutorial, aprendimos cómo instalar Devise y configurar nuestra aplicación Rails. En esta parte, veremos cómo integrar DeviseInvitable.

DeviseInvitable es una extensión que trabaja con Devise. Con DeviseInvitable en tu aplicación, tus usuarios pueden invitar a sus amigos vía email. Esta es una gran característica para incluir en tu aplicación si estás construyendo una aplicación de colaboración.

Configurando DeviseInvitable

Abre tu Gemfile y agrega el gem:

Ejecuta el comando para instalar bundle install.

Ejecuta el comando generador para agregar la opción de configuración de DeviseInvitable al archivo de configuración de Devise.

Puedes ver los nuevos cambios revisando config/initializers/devise.rb con tu editor de texto.

Después, agreguemos DeviseInvitable a nuestro modelo User.

Esto agregará la bandera :invitable a tu modelo, de así pues tu modelo User lucirá así:

Ejecutando el comando de arriba también generó un archivo de migración que se ve como lo que tengo abajo:

Ahora migra tu base de datos ejecutando rake db:migrate.

Configurando el Controlador para DeviseInvitable

DeviseInvitable es requerido para pasar algunos parámetros cuando se envía una invitación. Para que esto funcione, necesitamos poner en lista blanca el parámetro necesario que será usado. Usando tu editor de texto, navega a app/controllers/application_controller.rb y haz que el tuyo luzca como lo que tengo abajo:

Desde arriba, puedes ver que :email ha sido puesto en lista blanca por DeviseInvitable.

Ahora veamos que tenemos vía nuestra consola. En tu terminal, ejecuta rails console e ingresa lo que tienes abajo.

Debería producir la salida que se ve como lo que tengo abajo, aunque habrá diferencias.

Eso funcionó según lo planeado.

No quieres que tus usuarios manden invitaciones vía la línea de comando, así que es importante configurar DeviseInvitable para trabajar en el front-end. Hacer esto es muy sencillo; ejecuta el comando generador para generar las vistas para DeviseInvitable.

rails generate devise_invitable:views users

También necesitarás agregar un enlace en algún lugar en tu aplicación que apunte a la página para enviar invitaciones (app/views/users/invitations/new.html.erb).

Para esta aplicación, puedes continuar y agregar el enlace a tu archivo de navegación. Aquí está cómo hice el mio:

Para ver las rutas puestas disponibles por DeviseInvitable, ejecuta el comando rake routes | invit. Aquí está cómo luce la salida.

Veamos lo que tenemos en este momento. Ejecuta el comando para comenzar tu servidor; rails server.

Apunta a tu navegador a http://localhost:3000/users/invitation/new. Ingresa una dirección de correo en el formulario mostrado, y da clic sobre el botón. ¡Eso debería funcionar! Si vas a los registros de tu servidor, deberías ver una salida que fue creada cuando enviaste la invitación. En la salida, verás un enlace para aceptar la invitación.

Estarás de acuerdo conmigo en que será mejor si puedes ver el email enviado en tu navegador. Veamos cómo hacer que eso funcione.

Integrando Letter_Opener

Letter Opener te permite previsualizar emails en tu navegador web por defecto. Con esto, no tienes que configurar un sistema de entrega de correo mientras trabajas en el entorno de desarrollo.

Abre tu Gemfile y agrega el gem de abajo:

gem 'letter_opener'

Ejecuta bundle install.

Usando tu editor de texto, navega a config/environments/development.rb y agrega  la línea de abajo.

Reinicia tu servidor rails. Ahora apunta a tu navegador a http://localhost:3000/users/invitation/new. Llena y envía el formulario mostrado. Esta vez, una nueva página merge conteniendo el email de invitación.

Cambia las Rutas de Inicio y Cierre de Sesión Por Defecto

Por defecto, las rutas sign_in y sign_out cuando se usa Devise lucen así:

sign_in: http://localhost:3000/users/sign_in

sign_out: http://localhost:3000/users/sign_out

Para cambiarlo, ve a config/routes.rb y agrega lo siguiente:

Puedes apuntar a tu navegador a http://localhost:3000/signin.

Conclusión

Ahora sabes cómo hacer uso de DeviseInvitable. También aprendiste sobre el gem letter_opener. hay muchas cosas que puedes hacer con Devise, así que revisa el Wiki para aprender más. Gracias por permanecer conmigo.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.