Serializando o hash de erros no ActiveModel :: Serializer

Estou usando o ActiveModel :: Serializer para personalizar as respostas JSON para minha API. Isso funciona bem na maioria dos casos, exceto quando falha ao salvar um modelo com êxito.

Por exemplo,

def create
  def create
    book = Book.new(book_params)
    book.save

    respond_with book, location: nil
  end
end

Pelo que entendi, a ação respond_with basicamente executará um código parecido com este (a fim de gerar a resposta).

  if resource.errors.any?
    render json: {:status => 'failed', :errors => resource.errors}
  else
    render json: {:status => 'created', :object => resource}
  end

Isso corresponde ao que estou vendo - se meu modelo falhar ao salvar com êxito, vejo o hash dos erros como resposta. No entanto, não consigo descobrir como especifico um serializador para o hash de erros.

Tentei definir um ErrorsSerializer e se eu executar

ActiveModel::Serializer.serializer_for(book.errors)

no console, parece encontrar meu serializador, mas ele não é usado. Como personalizo a resposta JSON neste cenário?

questionAnswers(4)

yourAnswerToTheQuestion