HowTo

Devise y la creación de usuarios con Rails

Otra receta buena y rápida sobre como controlar la creación de usuarios usando devise en Ruby, como base de datos usaremos PostgreSQL

Otra receta buena y rápida sobre como controlar la creación de usuarios usando devise en Ruby, como base de datos usaremos PostgreSQL

Una vista rápida usando Ruby 1.9.3, Rails 3.2.X y Devise 2.1.0 vamos a crear usuarios usando PostgreSQL como base de datos. Esta receta escrita por Rafa Pérez supone que se está usando RVM como manejador de versiones.

Primeros pasos con Devise

Lo primero es crear el gemset adecuado para el proyecto, para esto durante la creación del proyecto le asignamos el gemset a utilizar para luego instalar Rails. Veamos como se verían las instrucciones:

rvm use 1.9.3@nombre_del_proyecto --create
gem install rails # 3.2.X
gem install pg # adaptador postgresql
gem install devise # 2.1.0
cd nombre_del_proyecto
echo rvm use 1.9.3@nombre_del_proyecto > .rvmrc

Lo siguiente será la generar la configuración de devise y el primel modelo:
rails generate devise:install
rails generate devise user

Luego de tener la configuración necesitaremos un controlador para realizar el Login:
rails g controller login index

Lo siguiente es configurar una URL por defecto en el archivo config/environments/development.rb:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }

A continuación modificamos el archivo archivroutes.rb para definir nuestra root_url
root => “login:index”

Ahora configuremos el controlador especificando que es obligatorio realizar el login:
Devise y la creación de usuarios en Ruby o Primeros pasos con devise
class LoginController < ApplicationController
before_filter :authenticate_user!
def index
answer = user_signed_in? ? current_user.email.to_s : 'Usuario Anonimo'
render :text => answer
end
end

Antes de empezar borramos el archivo public/index.html y corremos las migraciones y el servidor rails:
rm public/index.html
rails db:migrate
rails s

Y listo, al acceder al localhost:3000 encontraras:
pantalla de login usando devise en ruby

Luego quedaría configurar la internacionalización para que el login aparezca en español, los mensajes de alerta, etc… pero eso es material de otro post.

 

2 Comments

  1. Diego

    Excelente aporte me ayudó mucho, me podrías decir si tienes idea sobre como hacer el sign out de un usuario pues no puedo hacerlo, y siempre tengo errores cuando lo intento

  2. Hola ¿Qué tal?

    Lo primero que necesitaría es que compartas el mensaje de error que estás viendo a fin de saber por dónde podría venir el problema. Lo otro es que podrías revisar un poco la documentación propia de devise e implementar el método de sign_out con los helpers que ellos mismos listan:

    https://github.com/plataformatec/devise

    Pero en teoría si mal no recuerdo debería ser algo así:

    :delete %>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

La moderación de comentarios está activada. Su comentario podría tardar cierto tiempo en aparecer.