2012-04-09 4 views
9

Gdybym nie obsługują poprawnie pogląd, produkcja środowiskową pokaz 500."actionView :: Template :: Error (nie prekompilowana)" podniesione na "image_tag nil"

<%= image_tag post.user.image_url %>

To może być

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

ale jestem trochę nieostrożny i zapomniał tej kwestii wielokrotnie.

Jak mogę temu zapobiec? Jak mogę używać <%= image_tag nil %> w środowisku produkcyjnym bez podnoszenia 500?

Odpowiedz

9

image_tag musi mieć źródło, Szyny nie może nic zrobić z nim, ale wyjątek.

Można napisać pomocnika takiego:

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

lub po prostu sprawdzić nil bezpośrednio w widoku. W każdym razie musisz zrobić coś, aby zapobiec błędowi.