问题
If I don't handle view correctly, Production environment show 500.
<%= image_tag post.user.image_url %>
This could be
<%= image_tag post.user.image_url if post.user && post.user.image_url %>
but I am little careless and forgot this issue several times.
How can I prevent this? How can I use <%= image_tag nil %>
in production environment without raising 500?
回答1:
image_tag
must have a source, Rails can do nothing with it, but raise an exception.
You can write a helper like this:
module ApplicationHelper
def safe_image_tag(source, options = {})
source ||= "default.jpg"
image_tag(source, options)
end
end
or simply check for nil
directly in a view. Anyway you have to do something to prevent an error.
来源:https://stackoverflow.com/questions/10070880/actionviewtemplateerror-isnt-precompiled-raised-on-image-tag-nil