Подтвердить что ты не робот

Grails: Как объединить ошибки доменных объектов с ошибками объектов команд?

Предположим, что у меня есть класс домена пользователя и класс RegistrationCommand. Поэтому, когда пользователь регистрируется на веб-сайте, есть два шага для проверки данных:

  • Проверка учетных данных RegistrationCommand.
  • Объект пользовательского домена сдерживает проверку.

Действие контроллера получает объект команды и передает его для просмотра в модели после вычисления. Поэтому я хочу присоединиться к ошибкам проверки объектов домена с ошибками объектов команд и передать их как часть объекта команды. Каков наилучший способ сделать это?

4b9b3361

Ответ 1

Я думаю, что полный ответ:

if (!user.validate() || !user.save(true))
{
    if (user.errors.hasErrors())
    {
        user.errors.allErrors.each {FieldError error ->
            final String field = error.field?.replace('profile.', '')
            final String code = "registrationCommand.$field.$error.code"
            command.errors.rejectValue(field, code)
        }
    }
    chain(action: 'registration', model: [command: command])
    return
}

Ответ 2

Я сделал следующее для своего проекта и счел его более чистым!

domain.errors.each {
  cmdObject.errors.reject(it.code, g.message(error: it))
}