所以我有一個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