Как сделать поля в Grails, представленные в выпадающем списке, необязательными? - PullRequest
1 голос
/ 17 января 2009

Я делаю свои первые эксперименты с Grails и ищу способ, чтобы поля, представленные в выпадающем списке (например, сопоставления доменов «один к одному» и числа с узким ограничением диапазона), были необязательными, т.е. быть пустой записью в выпадающем списке.

Как этого достичь? Я пробовал добавить ограничение nullable:true и перечислить поля в статическом свойстве optionals, но ни один из них не дает желаемого результата.

Это мои доменные классы:

class Customer {
    String name
}
class Book {
    static optionals = ['year','loanedTo','loanedSince']
    static constraints = {
    title(blank:false)
    author(blank:false)
    year(range:1900..new Date().getAt(Calendar.YEAR), nullable:true)
    loanedTo(nullable:true)
    loanedSince(min:new Date())
    }

    String title;
    String author;
    Integer year;
    Customer loanedTo;
    Date loanedSince;
}

Ответы [ 4 ]

3 голосов
/ 17 января 2009

Я обнаружил, что ограничение nullable:true действительно дает желаемый эффект - однако оно не вступает в силу немедленно; Вы должны перезагрузить Grails, чтобы увидеть это.

1 голос
/ 25 апреля 2009

Я не думаю, что optionals все еще поддерживается: http://jira.codehaus.org/browse/GRAILS-472

1 голос
/ 17 января 2009

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

0 голосов
/ 05 февраля 2009

Тег также имеет атрибут для значения по умолчанию, «не выбран»: noSelection. Вы можете использовать его таким образом, чтобы в раскрывающемся списке по умолчанию было указано «---» вместо ваших обычных значений: noSelection = "$ {[ '': '---']}"

В контроллере значение по умолчанию отображается в виде пустой строки, как указано в первой части значения.

...