5

エラーを使うならグレープでメソッドはエラーをスローし、Grape::Endpoint の「後」コールバックを呼び出すことはありません。

エラー時にアフターフックを呼び出すアプリが欲しい!呼ばれました。

これを実現するために、このミドルウェアを追加しました。

class AfterFailure <  Grape::Middleware::Base

  def call!(env)
    @env = env
    before

    error = catch (:error) do 
      @app_response = @app.call(@env)
      return after || @app_response
    end

    after_failure(error) || throw(:error, error)
  end

  def after_failure(error)
    puts "After Failure"

    nil
  end

end

これを達成するためのより良い方法はありますか?

ありがとう

4

1 に答える 1