Introducci贸n a ruby on rails - autenticaci贸n de usuarios

Sebastian Loaiza Correa

Vamos a tomar nuestra aplicaci贸n de notas para mostrar como crear y asociar nuestro modelo User, pero este ejemplo tambi茅n es valido para otras aplicaciones.

Para esto utilizaremos una gema de ruby llamada devise, entonces primero vamos a nuestro Gemfile y聽 podemos a帽adirla en la ultima linea escribiendo


gem 'devise'

Luego vamos a nuestra linea de comandos y ejecutamos聽


bundler install

rails generate devise:install 

rails generate devise User

rails generate devise:views users

rails db:migrate #Crear la tabla users

Listo, despu茅s de esto ya hemos instalado devise, generado nuestro modelo user, sus rutas y sus vistas, en el archivo routes.rb puedes ver que se ha agregado devise_for :users, esto repesenta el conjunto de rutas que devise ha creado por nosotros, puedes ver esto a mas detalle en la documentaci贸n de la gema. Ahora vamos a empezar a utilizar varias rutas y metodos que devise ya tiene desarrollados para nosotros.

En la vista users/registrations/new.html.erb podemos ver el formalario para registro y en users/sessions/new.html.erb podemos ver el formulario de login, por supuesto nosotros podemos agregar estilos y modificar este archivo, pero para este caso vamos a trabajar con la configuracion predeterminada, asi que ya estamos listos para registrar nuestro primer usuario y iniciar sesi贸n, pero antes de esto vamos a a帽adir nuestras rutas de inicio y registro en nuestra navegaci贸n.


<% if user_signed_in? %>
 <li class="col-md col-sm">
  <%= link_to "Cerrar sesion", destroy_user_session_path, method: :delete %>
 </li>
<% else %>
 <li class="col-md col-sm">
  <%= link_to "Iniciar sesion", new_user_session_path, method: :get %>
 </li>
 <li class="col-md col-sm">
  <%= link_to "Crear cuenta", new_user_registration_path, method: :get %>
 </li>
<% end %>

Es importante que realizemos un par de cambios antes de continuar, vamos a modificar nuestro modelo de notas y usuarios para crear la relaci贸n entre ellos. Primero vamos a crear una migraci贸n en la cual vamos a modificar la tabla de notas y luego vamos a agregar la relaci贸n en cada uno de los modelos.

Ejecutamos en consola


rails g migration AddUserToNotes

Vamos a db/migrate donde se encuentran nuestras migraciones y el ultimo archivo a帽adido debe ser la migraci贸n que acabamos de crear, dentro el metodo change agregamos


add_reference :notes, :user, foreign_key: true
change_column_null :notes, :user_id, false

Volvemos a la consola y corremos nuestra migraci贸n


rails db:migrate

Ahora dentro de nuestro modelo notes.rb agregamos la relaci贸n con users


belongs_to :user #Una nota esta relacionada solo con un usuario

Igualmente dentro de users.rb


has_many :notes #Un usuario tiene muchas notas

Ahora ya puedes reiniciar tu servidor y crear tu primer usuario mediante la consola de rails o los formularios de tu aplicaci贸n creados mediante devise.

Con devise tambi茅n podremos acceder a varios callbacks y helpers que nos ayudaran a verificar si el usuario esta logeado, obtener el usuario actual, entre otros.

Continua en: https://soyremoto.com/p/923301436313
#programacion #ruby #rails #web

Sebastian Loaiza Correa
sloaizac

Hi, my name is Sebastian, I'm engineering system student, I'm from Medellin-Colombia

full-stack developer
CO

Comentarios

Reg铆strate y haz el primer comentario!