我们说我有一个控制器如下:
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint name="SampleService"
implementation="com.ws.ServiceImpl"
url-pattern="/service" />
</endpoints>
是否有一种干净的方法可以阻止所有 class ExampleController < ApplicationController
after_action -> { puts 'Call me only on success' }
def create
obj = Obj.create(obj_params)
if obj.errors.empty?
render json: obj
else
render json: { errors: obj.errors }, status: 422
end
end
end
执行?
我所知道的事情:
after_action
after_action
不会停止render :something and return
s after_action
)会有效,但是当我不想返回错误细节但仍然回复create!
我会选择422
答案 0 :(得分:2)
您可以询问回复是否成功:
after_action :call_me_on_success, if: -> { response.successful? }
这适用于所有2XX代码:
response.method(:successful?).source
=> "def successful; status >= 200 && status < 300; end"