Per andare avanti con l’applicazione , posticipando la risoluzione del
problema, avevo definito una variabile globale che prendeva come valore
il nome dell’utente loggato.
(Sbaglio a pensare che la variabile globale definita in Application
verrà sovrascritta dal prossimo utente che si connetterà ?)
Certo che questo modo di fare mi creerà problemi ho deciso (ma non so se
è giusto) di fare in quest’altro modo:
In login_controller ho:
def login
if request.get?
session[:user_id] = nil
session[:user_name] = nil #**sostituisce var globale usata in
precedenza
@user = User.new
else
@user = User.new(params[:user])
logged_in_user = @user.try_to_login
if logged_in_user
session[:user_id] = logged_in_user.id
session[:user_name] = logged_in_user.name
puts session[:user_id] # ok valore esatto
puts session[:user_name] # ok valore esatto
@user = User.find(:first,:conditions => "name =
‘#{@user.name}’")
redirect_to(:action => “index”)
else
flash[:notice] = “Combinazione user/password non valida”
end
end
end
Dopo il login dovrei filtrare tutti i record marcati col nome o con l’id
dell’utente loggato.
Nelle righe di codice a cui si fa riferimento a session[:user_name]
ricevo l’errore
undefined local variable or method `session’ for Nomeclasse:Class
Credevo che l’oggetto sessione fosse visibile a tutti.
Cosa devo sapere per risolvere il problema?
Quale è il modo ottimale per gestire questa esigenza?
In attesa … ringrazio in anticipo.
BM