Sam*_*erg 8 ruby ruby-on-rails rails-api
我正在使用rails-api构建一个没有Web界面的API.当我在开发中遇到错误时,我很乐意在没有所有HTML包装的情况下看到错误消息和纯文本堆栈跟踪.如何覆盖全局异常处理,以便在纯文本/ JSON中以开发模式呈现堆栈跟踪,并在生产中呈现一般错误消息?
我建议从安全角度来看,在生产代码中包含堆栈跟踪可能不是一个好主意。
我将这样做:
render :json => {message:exception.message, stack_trace: exception.stacktrace}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
在 Sam 澄清后我可以补充:
在 API 的基本控制器中(可能是 ApplicationController):
class ApplicationController < ActionController::Base
...
rescue_from Exception do |exception|
error = {message:exception.message}
error[:stack_trace] = exception.stacktrace if Rails.env.development?
render :json => error
end
...
end
Run Code Online (Sandbox Code Playgroud)
警告:您可能不想以这种方式拯救每一个异常,但如果您这样做的话,您会这样做。
| 归档时间: |
|
| 查看次数: |
1847 次 |
| 最近记录: |