Mi spiego.
Uso devise_ldap per l’autenticazione.
Nel modello user ho implementato il metodo:
def name
“#{first_name} #{last_name}”
end
L’utente guest nel db ha guest guest come first_name e last_name,
quindi current_user.name mi darebbe guest guest.
Vorrei che l’utente guest dopo essersi loggato inserisse il suo nome e
cognome attraverso un form e vorrei fare in modo che da quel momento
in poi per tutta l’applicazione current_user.name avesse i dati
inseriti attraverso il form.
Ora per fare il redirect ad un form per inserire nome e cognome ho
fatto l’override del metodo after_sign_in_path_for:
def after_sign_in_path_for(resource)
if current_user.uid == “ospite”
login_guest_user_path(resource)
else
super
end
end
L’utente guest inserisce nel form presentato dalla pagina
login_guest_user_path i propri dati ma a questo punto non so come
modificare la sessione del current_user in modo che il suo metodo name
mi possa restituire il nome e cognome inseriti.
Vorrei che l’utente guest dopo essersi loggato inserisse il suo nome e
super
end
end
L’utente guest inserisce nel form presentato dalla pagina
login_guest_user_path i propri dati ma a questo punto non so come
modificare la sessione del current_user in modo che il suo metodo name
mi possa restituire il nome e cognome inseriti.
current_user ritorna l’utente loggato (e di norma usa la memoization).
Quindi, dopo il login di guest, dovresti usare un nuovo utente ad-hoc,
oppure:
imposti il nuovo nome in sessione
E’ quello che voglio fare.
Siccome mi appoggio ad una applicazione che chiede current_user.name
non posso far altro che trovare un modo per poter cambiare cio’ che
current_user.name mi restituisce.
Ci sara’ pure una sessione di current_user dove poter intervenire.
No ha solo un record nel db con first_name e last_name “guest” guest".
current_user.name percio’ mi restituisce guest guest.
Ecco perche’ dopo che il guest si e’ loggato con successo, chiedo,
tramite form, di inserire nome e cognome e vorrei far si che per tutta
l’applicazione current_user.name mi restituisca il nome e cognome
inseriti nel form.
Immagino di dover intervenire nella session di user ma non riesco a
capire come.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.