我正在使用ActiveModel :: Serializer自定义我的API的
JSON响应.这在大多数情况下工作正常,除非成功@R_314_301@失败.
例如,
def create def create book = Book.new(book_params) book.save respond_with book,location: nil end end
据了解,respond_with操作将基本上执行看起来像这样的代码(为了生成响应).
if resource.errors.any? render json: {:status => 'Failed',:errors => resource.errors} else render json: {:status => 'created',:object => resource} end
这与我正在看到的匹配 – 如果我的模型无法成功保存,我会看到错误哈希作为响应.但是,我无法弄清楚如何为错误哈希指定序列化程序.
我尝试定义一个ErroRSSerializer,如果我运行
ActiveModel::Serializer.serializer_for(book.errors)
在控制台中,似乎找到了我的序列化程序,但它没有被使用.在这种情况下如何自定义JSON响应?