Rails: Как я могу перебрать ошибки валидации? - PullRequest
1 голос
/ 09 марта 2010

Я создаю API для своего приложения и хотел бы возвращать ошибки в ответе XML, которые генерируются ошибками проверки.

Допустим, вы регистрируетесь на сайте, сейчас могут появиться следующие ошибки проверки:

Login has already been taken
Password is too short (minimum is 6 characters)
Email has already been taken

Но я бы хотел переформатировать это как:

<errors>
    <error>Login has already been taken</error>
    <error>Password is too short (minimum is 6 characters)</error>
    <error>Email has already been taken</error>
</errors>

Итак, как мне получить доступ к массиву ошибок проверки, чтобы сделать это?

Ответы [ 3 ]

5 голосов
/ 09 марта 2010

Rails предоставляет вам эту функциональность по умолчанию, т.е.

  user.errors.to_xml

даст вам

=>  <?xml version="1.0" encoding="UTF-8"?>
    <errors>  
     <error>Name can't be blank</error>
     <error>Wiki url can't be blank</error>
     <error>User can't be blank</error>
    </errors>
1 голос
/ 09 марта 2010

Вызовите #to_xml при методе ошибок


user = User.new
unless user.valid?
  return user.errors.to_xml
end
1 голос
/ 09 марта 2010

Объект модели будет иметь объект error , который вы можете повторить, некоторые примеры в validations doc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...