不幸的是,ActiveModel :: Serializers目前不支持验证错误,但它们已安排在1.0。在那之前,我必须破解我自己的解决方案。大问题?我不知道Ember Data的ActiveModelAdapter期望这些错误的格式是什么。我试过简单地传递errors
属性,但是Ember Data没有接受它:
class MySerializer < ActiveModel::Serializer
attributes :errors
end
那么我应该传递什么呢?
答案 0 :(得分:5)
我使用此方法来渲染验证错误(请注意,您根本不使用序列化程序):
def render_validation_errors errors
render json: {errors: errors.to_h}, status: 422
end
您可以这样使用它:
def create
model = Model.new model_params
if model.save
respond_with model
else
render_validation_errors model.errors
end
end
ActiveModelAdapter预期的格式为:
{"errors":{"title":"should begin with a capital letter"}}