Gem Grape 结合 ActiveRecord 使用的问题

kingwkb · 2014年03月08日 · 最后由 kingwkb 回复于 2014年03月09日 · 3800 次阅读

我们在 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 即可。

#1 楼 @Rei 如果一个字段 有不同的错误信息需要对应不同的错误码呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号