똑같은 삽질은 2번 하지 말자
rails 공통예외처리 본문
공통에외처리
controllers 내에서 공통으로 발생할 가능성이 있는 에러처리를 한곳에 모아두고 싶어서 작성해 보았다.
app/controllers/concerns/error_renderable.rb
module ErrorRenderable
extend ActiveSupport::Concern
included do
# 想定以外のエラーの場合は500を返す。
# rescue_from -> https://edgeapi.rubyonrails.org/classes/ActiveSupport/Rescuable/ClassMethods.html
rescue_from Exception do |e|
Rails.logger.error('Error: ' + e.message)
render json: {message: 'Server Error'}, status: :internal_server_error
end
# TODO: 다른 공통에러처리 할만한 것들 추가
end
end
app/controllers/application_controller.rb
class ApplicationController < ActionController::API
include ErrorRenderable
end
이제 모든 컨트롤러에서 따로 예외처리 rescue 를 안한것들은 500 error 로써 취급하게 된다.
참고한 기사: https://tech.pepabo.com/2021/03/15/rails-api-error-response/
Rails APIのエラーレスポンスを定義する - ペパボテックブログ
記事の目的と背景 EC事業部SCXチームのryuchan00と言います。 先日、RailsでゼロからレスポンスとしてJSONを返却するAPIを実装する機会がありました。その時点では、僕は今までエラーハンドリン
tech.pepabo.com
Comments