2012-04-09 8 views
9

Se non mi occupo avviso correttamente, di produzione rispettosi dell'ambiente spettacolo 500."ActionView :: Template :: errore (non è precompilato)" in rilievo sul "image_tag nil"

<%= image_tag post.user.image_url %>

Questo potrebbe essere

<%= image_tag post.user.image_url if post.user && post.user.image_url %>

ma sono po 'distratto e dimenticato questo problema più volte.

Come posso evitare questo? Come posso utilizzare <%= image_tag nil %> nell'ambiente di produzione senza aumentare 500?

risposta

9

image_tag deve avere una fonte, Rails non può farci nulla, ma generare un'eccezione.

È possibile scrivere un aiuto come questo:

module ApplicationHelper 
    def safe_image_tag(source, options = {}) 
    source ||= "default.jpg" 
    image_tag(source, options) 
    end 
end 

o semplicemente verificare la presenza di nil direttamente in una vista. In ogni caso devi fare qualcosa per prevenire un errore.

Problemi correlati