J'ai Ruby on Rails app où je fais ce qui suit:Les meilleures pratiques pour l'affichage des données de l'utilisateur peut ne pas avoir
@user = User.find(:first, :conditions => ['LOWER(username) = ?', current_subdomain.downcase], :include => :bio)
Où: include =>: bio "est la partie importante.
Puis dans la vue je veux afficher une bio:
<em><%= @user.bio.title %></em><br />
<%= @user.bio.city %><br />
<%= @user.bio.state %><br />
<%= @user.bio.country %>
Mais si l'utilisateur dosn't avoir des informations juste se retrouvera quelques lignes vides.
J'ai essayé deux choses différentes, aucun d'eux n'a fonctionné jusqu'à présent ...
<% if @user.bio.title %> # is always true
<% if @user.bio.title > 0 %> # triggers an error if @user.bio.title isn't set
<% unless @user.bio.title.empty? %> # same as above
Toute sollution à la façon d'afficher uniquement les données que l'utilisateur a obtenu?
Merci d'avance!
MISE À JOUR
Ok, si compris certaines choses:
<% if @user.bio.title %> # Works if the bio isn't set at all.
<% if @user.bio.title > 0 %> # Works if the bio is set.
Je peux donc utiliser une sollution qui ressemble à:
<% if @user.bio.title %><% if @user.bio.title > '0' %><%= @user.bio.title %><% end %><% end %>
Mais couture un peu exagéré? De meilleures suggestions?
Merci!
Cela fonctionne! Mieux que le dubble si c'est sûr, merci! – Alfred
J'aime l'alternative ici, tirer le code de la vue dans un code de modèle. –