В режиме разработки это работает, потому что Grails динамически обновляет приложение с вашими изменениями (контроллерами, службами, gsps и т. Д.)
Я не уверен в ваших потребностях, но, возможно, вы просто хотите динамически визуализировать ответ от контроллера без шаблона. Может быть, эта часть (рендеринг раздела ответа) документа будет полезна
render {
for (b in books) {
div(id: b.id, b.title)
}
}