0

不幸的是,ActiveModel::Serializers 目前不支持验证错误,尽管它们计划用于1.0。在那之前,我必须破解我自己的解决方案。大问题?我不知道 Ember Data 的 ActiveModelAdapter 期望这些错误采用什么格式。我尝试简单地传入errors属性,但 Ember Data 没有接受它:

class MySerializer < ActiveModel::Serializer
  attributes :errors
end

那么我应该传入什么?

4

1 回答 1

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"}}
于 2014-04-14T17:07:46.357 回答