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 に答える