在 "image_tag nil" 上引发了 "ActionView::Template::Error(未预编译)"。

9
如果我没有正确处理视图,生产环境将显示500错误。
这可以是: <%= image_tag post.user.image_url if post.user && post.user.image_url %> 但是我有些粗心,几次忘记了这个问题。
如何防止这种情况?如何在生产环境中使用<%= image_tag nil %>而不会引起500错误?
1个回答

8

image_tag必须有一个源,否则Rails将无法处理它并引发异常。

您可以编写如下的帮助程序:

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

或者直接在视图中检查nil。无论如何,您都必须做一些事情来防止出错。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接