Отобразить временное свойство домена в представлениях лесов - PullRequest
5 голосов
/ 18 мая 2011

В моем проекте Grails 1.3.7 у меня есть класс домена, подобный этому:

class User {

String login
String password
String name
String passwordConfirmation

static constraints = {
    login       unique:true, blank:false, maxSize:45
    password    password:true, blank:false, size:8..45, 
                matches: /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*/
    name        blank:false, maxSize:45
    passwordConfirmation display:true, password:true, validator: { val, obj ->
        if (!obj.properties['password'].equals(val)) {
            return ['password.mismatch']
        }}
}

static transients = ['passwordConfirmation']

String toString() {
    name
}

}

И я использую скаффолд для соответствующих действий по созданию / редактированию.

Моя проблема в том, что даже если я пометил ограничение passwordConfirmation для отображения, оно не отображается в представлениях лесов. Есть ли что-то, что мне не хватает, чтобы сделать переходные свойства для отображения? Возможно ли это?

Спасибо

1 Ответ

5 голосов
/ 09 августа 2011

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

Установить шаблоны представлений:

grails InstallTemplates

Затем открытьсоответствующие шаблоны в src / templates / scaffolding

и измените строку со следующим текстом:

persistentPropNames = domainClass.persistentProperties*.name

на

persistentPropNames = domainClass.properties*.name

для каждого из шаблонов.Это немного сложная задача, но она должна работать, и вы можете дополнительно отредактировать шаблон, чтобы включить / исключить любые свойства, которые вам нравятся.

...