Как обратиться к другому свойству в пользовательском валидаторе Grails? - PullRequest
0 голосов
/ 13 мая 2010

У меня есть свойство, которое может быть обнуляемым или обязательным в зависимости от состояния другой переменной.

class Person{
name()
civilStatus(inList:['Single','Married','Divorced','Widowed'])
partnerOrSpouse()
}

свойство partnerOrSpouse может иметь значение null или нет в зависимости от значения свойства civilStatus.

1 Ответ

2 голосов
/ 13 мая 2010

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

class Person {
   ...
   static constraints = {
      name()
      civilStatus inList:['Single','Married','Divorced','Widowed']
      partnerOrSpouse validator: { val, obj ->
         if (obj.civilStatus == 'Single') {
            return 'some.error.code'
         }
      }
   }
}
...