所以我有一个Rails应用程序一个相当普遍的rescue_from块:变量的访问
if Rails.env.production?
unless Rails.application.config.consider_all_requests_local
rescue_from Exception, with: lambda { |exception| render_error 500, exception }
rescue_from Mongoid::Errors::DocumentNotFound, with: lambda { |exception| render_error 404, exception }
end
end
,但我希望能够看到错误消息,如果我是一个管理员用户,所以我改变在“除非”行:
unless Rails.application.config.consider_all_requests_local || (current_user.present? && current_user.site_amdin)
但轨道抱怨:“未定义的局部变量或方法`CURRENT_USER”的ApplicationController中:类”
所以,我怎么能访问实例变量,罪代码不在一个块内?
我也试图把它包在的before_filter块:
before_filter do
if Rails.env.production? || (current_user.present? && current_user.site_admin)
unless Rails.application.config.consider_all_requests_local
Application.rescue_from Exception, with: lambda { |exception| render_error 500, exception }
Application.rescue_from Mongoid::Errors::DocumentNotFound, with: lambda { |exception| render_error 404, exception }
end
end
末
但应用程序不会在服务器上运行。
当然,但是通过这样做,我绕过了当我不求助于rescue_from时得到的本机错误报告。但我想我可以通过在模板中输出错误消息来复制该格式。 –
为此尝试“引发异常”。 – Inpego