salve ragazzi, sto facendo un po’ di test con rails per cercare di
entrare
davvero nella sua logica.
Sto realizzando una sorta di gestione utenti. Ogni utente oltre ai campi
“standard” (name, surname, email, user, pass…) ha un utente “friend”.
Significa che ciascun utente potrà scegliere tra gli altri utenti un
amico.
Ovviamente questo non è un campo obbligatorio (altrimenti il primo come
farebbe a registrarsi??!!??).
Il primo problema che mi è giunto è quello di mostrare una select contenente
i nomi degli utenti già inseriti, dando la possibilità al nuovo utente di
scegliersi l’amico in maniera facile.
Il problema qualè? Praticamente nel momento della creazione dell’utente la
select deve mostrare TUTTI gli utenti inseriti nel DB, mentre nella
modifica
deve mostrare TUTTI gli utenti TRANNE quello corrente che sta
modificando il
profilo.
Ho utilizzato questa soluzione, anche se un po’ di comodo e troppo poco
elegante
<%=select(“user”, “user_id”, User.find(:all, :conditions => “users.id <>
#{@
user.id|0}”).collect {|p| [ p.username, p.id ] }, {:include_blank =>
true})
%>
Praticamente se @user esiste aggiungo un “<> id” alla query, altrimenti
aggiungo “<> 0” che, non esistendo nessun utente con id = 0, mi ritorna
tutti gli utenti.
Mi era venuta in mente anche l’idea di inserire un if nella vista
discriminando su @user e utilizzando due select() diverse, una con la
clausula <> user.id e l’altra senza clausole.
Cosa mi consigliereste??
grazie
–
everything has got to end sometime we were satellites drifting off into
space
vega 4 - burn and fade away