2014-10-30 2 views
1

Существует область класса Person, в котором поле имеет ограничение какИсправление ошибки проверки Grails для пустой, пустого поля в Grails

AnnualIncome(blank:true, nullable:true,range: 100000..100000000). 

Если пользователь не хочет, чтобы заполнить это поле, то значение по умолчанию для этой записи равно 0, а затем возникает исключение по умолчанию в стиле Грааля, которое говорит о том, что значение AnnualIncome не падает в диапазоне от 100000 до 100000000.

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

+1

Вы должны следовать соглашению об именах, которое является именем поля «AnnualIncome» должно быть в случае с верблюдом. – Abs

ответ

0

Вы можете использовать custom validator на поле диапазона для случая использования:

в закрытии валидатора вы можете применить ограничение условно.

в закрытии валидатора можно проверить

if(AnnualIncome ==0){ 
    //do somthing 
}else{ 
    // apply constraint here. 
} 
0

Как вы позволяете null установите значение null вместо 0. Это делает еще проще отличить между значением , а не, введенным или фактическим 0 (что может измениться в какой-то момент в будущем, например, потому что вы разрешаете НКО регистрироваться).

В противном случае вы должны удалить проверку диапазона. Если это не относится к , храня данные, то это должно решаться на уровне модели домена (объекты GORM не являются моделью домена).

+0

Это может быть простой альтернативой, но по умолчанию grails устанавливает это значение как ноль. Но как установить его как null? – user3789902

+0

@ user3789902 Какой тип 'YearIncome'? – cfrick

+0

Это тип float. – user3789902