39 votes

Comment afficher l'image dans le trombone lorsqu'aucune image n'est présente ?

Comment puis-je empêcher la balise d'image qui appelle l'image associée de s'afficher si aucune image n'est associée à l'enregistrement ?

<%= image_tag @agent.avatar.url %>

...me donne le texte "Missing" s'il n'y a pas d'image associée à cet agent. Je veux d'abord vérifier qu'une image est disponible, puis rendre la balise ci-dessus si le test retourne vrai.

Mieux encore, existe-t-il un moyen pour moi de spécifier une image par défaut si aucune image n'est spécifiquement fournie ?

60voto

Christoph Schiessl Points 3672

J'utilise la méthode suivante pour savoir si un modèle a un accessoire associé :

<% if @agent.avatar.file? %>
  <%= image_tag @agent.avatar.url(:normal) %>
<% else %>
  No attachment available!
<% end %>

53voto

Voldy Points 7388

Si l'avatar a plusieurs tailles :

has_attached_file :avatar, 
                  :styles => {:small => '30x30#', :large => '100x100#'}, 
                  :default_url => '/images/missing_:style.png'

pour Rails 3 :

has_attached_file :avatar, 
                  :styles => {:small => '30x30#', :large => '100x100#'}, 
                  :default_url => '/assets/images/missing_:style.png'

31voto

neezer Points 6779

Ok, donc j'en ai une partie.

Spécifier une image par défaut se produit dans le modèle

has_attached_file :avatar, :default_url => '/images/brokers/agents/anonymous_icon.jpg'

18voto

tig Points 5567

Quelques octets en moins :

<% if @agent.avatar? %>
  <%= image_tag @agent.avatar.url(:normal) %>
<% else %>
  No attachment available!
<% end %>

3voto

a5his Points 1765

Il est préférable d'utiliser :default_url plutôt que des conditions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X