Permite invitar nuevos usuarios usando devise_invitable

Si ya tenemos autenticación en nuestra aplicación usando Devise, tenemos acceso a diferentes gemas que agregan más funcionalidad a Devise, una de ellas es devise_invitable que permite a usuarios autenticados enviar invitaciones por correo electrónico a otras personas para que creen su cuenta en el sitio.

El requisito para usarla es tener Devise ya en nuestra app, para usarla debemos hacer lo siguiente:

  1. Agregar a nuestro Gemfile la gema con gem 'devise_invitable'
  2. Luego ejecutamos en la terminal bundle install para que estén disponibles los generadores de la gema
  3. Ejecutamos el generador desde la terminal con rails generate devise_invitable:install
  4. Ejecutamos el generador rails generate devise_invitable MODEL sustituyendo MODEL por el nombre del modelo que queremos usar para manejar los campos de invitación, en la mayoría de casos es el modelo User

Luego de estos pasos la funcionalidad está disponible en nuestra app, lo que hace la gema es lo siguiente:

  1. Agrega la llamada a devise :invitable en el modelo que definimos (User en este caso)
  2. Crea una migración al modelo con los campos
    1
    2
    3
    4
    5
    6
    7
    t.string   :invitation_token
    t.datetime :invitation_created_at
    t.datetime :invitation_sent_at
    t.datetime :invitation_accepted_at
    t.integer :invitation_limit
    t.integer :invited_by_id
    t.string :invited_by_type

Internamente las vistas están dentro de la gema, si queremos hacerles cambios lo mejor es generarlas para que las copie a nuestra aplicación, desde la terminal ejecutamos:

1
rails generate devise_invitable:views

Con esto ya podemos hacer los cambios que necesitemos a las vistas, existen muchas más opciones de la gema para internacionalización, cambiar el controlador, callbacks después de aceptar la invitación, etc. que pueden explorar en su repositorio en github https://github.com/scambra/devise_invitable

Hasta la próxima!

avatar

Blog neyDroid

Desarrollando Vagancias