使用Rails在登录控制台中捕获异常

时间:2015-08-30 06:29:24

标签: ruby-on-rails

有以下代码:

  if Rails.env.production?    
    rescue_from ArgumentError, ActiveRecord::RecordInvalid do |exp| 
      render_error(message: t('exceptions.incorrect_request_params'))
    end
  end

  def render_error(params)
    @error_message = params[:message]
    render 'shared/error', status: params[:status] || :bad_request
  end

我使用此代码捕获异常,它运行良好,但是当它发生时我无法在控制台中看到此事件的原因 - 我只是看到这样的事情:

I, [2015-08-30T05:55:24.068366 #24617]  INFO -- :   Rendered shared/error.json.jbuilder (0.2ms)
I, [2015-08-30T05:55:24.068615 #24617]  INFO -- : Completed 503 Service Unavailable in 289ms (Views: 1.1ms | ActiveRecord: 2.1ms)

如何渲染模板以及在控制台中编写?提前致谢!

2 个答案:

答案 0 :(得分:0)

您可以使用Rails记录器登录控制台 http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger

你会做这样的事情

def render_error(params)
    @error_message = params[:message]
    logger.error(@error_message)
    render 'shared/error', status: params[:status] || :bad_request
end

答案 1 :(得分:-1)

if Rails.env.production?    
  rescue_from ArgumentError, ActiveRecord::RecordInvalid do |exp| 
    Rails.logger.error(exp)
    render_error(message: t('exceptions.incorrect_request_params'))
  end
end