Проблема с выбором GRAILS - попытка вставить номер для поля, которое отображается как текст в раскрывающемся списке - PullRequest
0 голосов
/ 31 января 2011

Вот класс домена, который я определил:

пакет mypackage

public enum UFModeType { I (0), O (1), R (3)

Integer mode
public UserFileModeType(Integer mode) {
    this.mode = mode;
}
static list() {
    [I, O, R]
}

}

Это свойство другого домена Parent, где оно выглядит следующим образом:

пакет mypackage class Parent { Имя строки ... ... ... UFModeType uFMode

static mapping = {
    table 'parent_table_with_ufMode_col_as_number'
    version false
    tablePerHierarchy false
    id generator:'sequence', params:[sequence:'myseq']
    columns {
        id column:'parentid'
        uFMode column: 'UFMODE'
    }
}

static constraints = {
    userFileMode(nullable: true)
}

}

вызов gsp для этого выглядит следующим образом: g: select name = "uFMode" from = "$ {mypackage.UFModeType? .list ()}" value = "$ {parentInstance? .uFMode? .name ()}" /

Я перепробовал много вариантов вышеупомянутого в вызове gsp, но я получаю ошибку, что вставка базы данных завершается неудачно, говоря, что запись ufmode является недопустимым номером, таким образом, это не передается как число. Я напечатал параметры в контроллере сохранить, и это показывает это: Параметры в save = [uFMode: I ...

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

Спасибо!

1 Ответ

0 голосов
/ 01 февраля 2011

Попробуйте изменить

value="${parentInstance?.uFMode?.name()} 

до

value="${parentInstance?.uFMode?.mode()}

Из определения UFModeType у вас нет атрибута имени.

...