martes, 11 de diciembre de 2012

Integrar Devise en Rails

Dentro del desarrollo de aplicaciones en Rails, si tenemos que elegir una forma de gestionar los usuarios del sistema, yo (y muchos más) recomiendo la gema Devise de plataformatec.

Es sencilla de usar y te ahorra todo el tiempo que requiere el gestionar la creación, auntentificación, bloqueos y demás acciones que requiere un sistema con usuarios.

Pasos para integrarla en una aplicación:

  • Incluimos la gema en nuestro Gemfile:
  • gem 'devise'

  • Preparamos la aplicación y generamos nuestro modelo. Para mayor facilidad, recomiendo llamar al modelo User, ya que todos los ejemplos y tutoriales suelen asumir ese nombre.
    rails generate devise:install
    rails generate devise User
  • Antes de realizar la migración, configuramos las extensiones
  • Para obligar a que un usuario tenga que logarse al entrar en la aplicación (o una parte), debemos incluir el filtro:
    before_filter :authenticate_user!
    Una vez que corramos las migraciones, ya tendremos lista nuestra gestión de usuarios. Podemos modificar config/initializers/devise.rb para configurarlo. Por ejemplo:
  • config.authentication_keys = [ :username ], si queremos login por email o nombre de usuario