- Learn
- Guida Ruby On Rails
- Gestire gli utenti
Gestire gli utenti
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
Se vuoi aggiornamenti su Gestire gli utenti inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Il DroidCon 2016, intervista a Francesco Ronchi
I numeri e i contenuti di DroidCon 2016, commentati dal padrone di casa Francesco Ronchi. Il capitano di Synesthesia fa […]