"ActionView::Template::Error ( isn't precompiled)" raised on "image_tag nil"
asset-pipeline, ruby-on-rails-3.1
Solution
`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.
Problem
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?