在rails 2.3应用程序中,如果@user.is_admin?
为真,我想显示详细的错误异常信息。否则在500.rhtml
上显示一般错误。
最好的方法是什么?
答案 0 :(得分:0)
在ApplicationController中,rescue_from StandardError,在该方法中,渲染一个打印异常消息并回溯的视图。
class ApplicationController
rescue_from StandardError, :with => :show_exception
def show_exception(e)
@e = e
render "global/show_exception"
end
end
# app/views/global/show_exception.html.erb
<h1><%= @e.message %></h1>
<pre>
<%= @e.backtrace %>
</pre>
这应该可以解决问题。另一个选项是让一个before_filter检查用户是否是管理员,然后将consider_all_requests_local
的应用程序配置设置为true(如果是)。
before_filter { Rails.application.config.consider_all_requests_local = current_user.try(:is_admin?) }