Ruby on Rails: utilizzare Devise per la gestione degli utenti
Devise è un'ottima libreria per RoR dedicata alla gestione degli utenti.
Permette di gestire facilmente la registrazione, il recupero delle credenziali di accesso e i ruoli.
Vediamo i semplici passi necessari per implementarla all'interno di un progetto RubyOnRails.
e lanciando successivamente l'aggiornamento di bundle:
Apriamo il file config/environments/development.rb e aggiungiamo prima della keyword end questa riga:
Modifichiamo il file app/views/layouts/application.html.erb aggiungendo prima del tag <%= yield %> questo codice:
e applichiamo le modifiche al database:
Permette di gestire facilmente la registrazione, il recupero delle credenziali di accesso e i ruoli.
Vediamo i semplici passi necessari per implementarla all'interno di un progetto RubyOnRails.
Installiamo la gemma
Per prima cosa, modificare il file Gemfile del progetto aggiungendo la rigagem 'devise'
e lanciando successivamente l'aggiornamento di bundle:
bundle install
Abilitiamo e configuriamo devise
Richiamiamo il seguente comando dalla console:rails generate devise:install
Apriamo il file config/environments/development.rb e aggiungiamo prima della keyword end questa riga:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Modifichiamo il file app/views/layouts/application.html.erb aggiungendo prima del tag <%= yield %> questo codice:
<% if notice %>
<%= notice %>
<% end %>
<% if alert %>
<%= alert %>
<% end %>
Creiamo il modello
Generiamo il modello:rails generate devise user
e applichiamo le modifiche al database:
rake db:migrate
Ora possiamo creare un nuovo utente
Avviamo il server (se non era stato già fatto) con rails s e colleghiamoci a http://localhost:3000/users/sign_up: se tutto è andato a buon fine, dovremmo vedere la pagina di creazione dell'account che ci permetterà di effettuare il sign-up.Integriamo nell'app i link per il login e la creazione dell'account
Modifichiamo il file app/views/layouts/application.html.erb e aggiungiamo questo frammento di codice nel punto in cui vogliamo visualizzare i controlli:<% if user_signed_in? %>
Logged in as <strong><%= current_user.email %></strong>.
<%= link_to 'Edit profile', edit_user_registration_path, :class => 'navbar-link' %> |
<%= link_to "Logout", destroy_user_session_path, method: :delete, :class => 'navbar-link' %>
<% else %>
<%= link_to "Sign up", new_user_registration_path, :class => 'navbar-link' %> |
<%= link_to "Login", new_user_session_path, :class => 'navbar-link' %>
<% end %>