Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestire gli utenti

Creare i moduli di login e gli strumenti per la gestione delle registrazioni degli utenti
Creare i moduli di login e gli strumenti per la gestione delle registrazioni degli utenti
Link copiato negli appunti

A questo punto gli ultimi form che dobbiamo aggiungere sono quelli relativi alla registrazione e al login degli utenti, per poi far sì che solo gli utenti registrati possano inviare messaggi e creare nuovi argomenti di discussione. La prima cosa necessaria sarà quindi la possibilità per un autore di registrarsi e di effettuare il login.

Creiamo quindi un nuovo controller adibito a questo scopo, con due metodi  new e login tramite il solito script/generate.

L'azione new sarà molto simile a quelle già realizzate, ma ovviamente il form sarà differente, in quanto avrà bisogno di avere tre caselle di testo: una per il nickname, una per la password ed una per verificare quest'ultima. Per realizzare il modulo, però, utilizzeremo un codice leggermente differente:

<%= start_form_tag(:action=>"new") %>
  Username: <%= text_field( "author", "name") %>
  <br />
  Password: <%= password_field( "author", "password") %>
  <br />
  Verifica Password: <%= password_field( "author", "password_confirmation" ) %> 
  <br />
  <%= submit_tag "registra" %>
<%= end_form_tag %>

Questa volta abbiamo usato degli helper per creare i tag del form, il cui significato dovrebbe essere chiaro. Abbiamo anche usato degli helper leggermente più sofisticati per gestire user e password, potete riconoscerli in quanto il loro nome non finisce con "_tag". Questi helper, sono specificamente pensati per costruire form dedicati alla creazione di oggetti, ed ovviamente ne esistono di adatti ad ogni tipo di input, come aree di testo, check box, file upload e così via.

Quando l'azione richiamata dal form andrà ad analizzare i valori tramite params, troverà qualcosa di meglio di una semplice stringa, infatti alla chiave "author" corrisponderà un Hash con chiavi "password", "password_confirmation" e "name".  Se vi state chiedendo dove sia l'utilità in tutto ciò, vi basti ricordare che il metodo Author.new può accettare in input proprio un Hash di questo tipo, e quindi la creazione di un oggetto diventa semplicemente Author.new(params['author']).

Usando lo stesso approccio già usato per creare un nuovo topic, potremo definire il metodo relativo all'azione in questo modo:

def new
   if request.post?
     @author=Author.new(params['author'])
     if @author.save
       logged
     end
   end
end

logged per ora non farà altro che rimandare l'utente alla prima pagina, si tratta di un metodo protetto definito in questo modo:

def logged
   redirect_to(:controller=>"home")
end
protected :logged

Ti consigliamo anche