9

如果我没有正确处理视图,生产环境显示 500。

<%= image_tag post.user.image_url %>

这可能是

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

但我有点粗心,几次忘记了这个问题。

我怎样才能防止这种情况?如何<%= image_tag nil %>在生产环境中使用而不提高500?

4

1 回答 1

8

image_tag必须有来源,Rails 对此无能为力,但会引发异常。

你可以写一个这样的助手:

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

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

于 2012-04-09T09:11:06.197 回答