我们在 ActiveRecord 中定义 Validation
Grape 中 Save 之后 只能返回错误的消息
但是我们想给每个错误指定一个错误码,返回给客户端,显示的内容由客户端自定
查了很多资料 也没解决这个问题。
ActiveRecord#errors 返回一个类似 hash 的对象,用这个对象来判断。
我是这么干的:
def raise_error_message(error_message, status_code=422) error!({ "errors" => error_message }, status_code) end
抛给客户端应该是 grape 的事情,https://github.com/intridea/grape#raising-exceptions 准确的说,Validation 是在 ActiveModel 定义,而不是在 ActiveRecord,返回的错误信息传送给。raise_error_message 即可。
raise_error_message
#1 楼 @Rei 如果一个字段 有不同的错误信息需要对应不同的错误码呢?