Леса Grails отображают меньше столбцов, чем домен - PullRequest
2 голосов
/ 10 февраля 2012

В моем доменном классе 6 столбцов. Но я вижу только 5 столбцов в списке контроллеров, когда scaffold установлен в true Моя база данных mySql. Когда исполняемая таблица создается с правильным количеством столбцов Мой домен класс

class RouteDesc {
String routenumber
String routeoperator
String routeinstructions
Date validfrom
Date validto
String weekendavailablity

static constraints = {
    routenumber blank:false, unique:true,  display:true
    routeoperator blank:false,  display:true
    routeinstructions blank:true,  display:true
    validfrom display:true
    validto display:true
    weekendavailablity display:true
}
//static belongs to = RouteId

String toString () {
    return routenumber
}
}

Мой класс контроллеров

class RouteDescController {

  static scaffold = true
}

Ответы [ 2 ]

7 голосов
/ 10 февраля 2012

По умолчанию на странице списка скаффолдингов количество столбцов ограничено 6 (так как eachWithIndex начинается с нуля), и 1 из них будет использоваться для столбца ID, поэтому будут отображаться только 5 атрибутов. Если вы хотите изменить это, вы можете установить шаблоны через grails install-templates, что (в Grails 2.0) поместит шаблоны в src/templates/scaffolding/. Шаблон, который вам нужно обновить, это list.gsp, примерно на полпути внизу есть следующий код:

...
props.eachWithIndex { p, i ->
    if (i < 6) {
       ...
    }
}

Вам нужно изменить эти 6 на те, которые вы хотите. В качестве дополнительного примечания порядок, в котором поля отображаются через леса, может контролироваться порядком, в котором они определены в ограничениях (http://grails.org/doc/latest/guide/scaffolding.html).

2 голосов
/ 13 февраля 2012

Еще одно дополнение к тому, что предложил Джарред Олсон

props.eachWithIndex { p, i ->
  if (i < 6) {
   ...
  }

}

Также измените

<td><g:link action="show" id="\${${propertyName}.id}">\${fieldValue(bean: ${propertyName}, field: "${p.name}")}</g:link></td>
                    <%      } else if (i < 6) {
                                if (p.type == Boolean.class || p.type == boolean.class) { %>
                        <td><g:formatBoolean boolean="\${${propertyName}.${p.name}}" />
</td>
...