Как проверить, если в недвижимости есть место в Groovy? - PullRequest
0 голосов
/ 08 февраля 2012

Я новичок в Grails, и у меня возникла проблема с тем, как написать правильные ограничения одного из свойств моего класса. Я хочу проверить, содержит ли вход пробел (''). Вот мой код ..

static constraints = {    

username nullable: false, blank: false, minSize: 6, matches: /[A-za-z0-9_]{6,}/, validator: { 
           Account.countByUsername(it) < 1  
        }

Пожалуйста, помогите мне.

Спасибо!

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

В дополнение к пользовательскому валидатору вы также можете использовать matches валидатор , чтобы обеспечить использование только допустимых символов.

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

Если вы хотите послать кому-то специальное сообщение, если в нем есть пробел (вместо какого-либо другого недопустимого символа), то ответ doelleri - правильный способ сделать это.

1 голос
/ 08 февраля 2012

Вы хотите использовать пользовательский валидатор, например:

username validator: { val -> if (val.contains(' ')) return 'value.hasASpace' }

Редактировать: Как указал Р. Вальбуэна, вам нужно изменить countByUsername() валидатор на unique: true.

...