在Grape中,如果你使用错误!方法,它将抛出一个错误,并且永远不会调用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
有没有更好的方法来实现这一目标?
由于
答案 0 :(得分:0)
只需在Grape :: Middleware :: Error
之前插入中间件class YourApi < Grape::API
insert_before Grape::Middleware, AfterFailure
# your api code...
end
然后您可以从@app_response