Я использую Grails 3.2.3 и создаю собственные представления в grails-app / views / training :

В _short-training.gson

import com.example.trainings.Training

model {
    Training training
}

json g.render(training, [includes:['id', 'name']])

В short-index.gson

import com.example.trainings.Training

model {
    Iterable<Training> trainingList
}

json tmpl.'short-training'(trainingList ?: [])

В контроллере я пробовал два разных подхода, но ни один из них не работает. Оба возвращают статус 200, но вместо 6 экземпляров обучения я получил:

    render(view: "short-index", model: [trainingList: section.trainings])

[ноль, ноль, ноль, ноль, ноль, ноль]

    respond section.trainings, [status: OK, view:"short-index"]

[]

Кажется, что тренировки видны в short-index.gson при использовании render , но не передаются дальше. отвечайте , вообще не проходите тренинги. что мне не хватает?

1
Michal_Szulc 20 Дек 2016 в 00:29
Я пробовал также без тире внутри имен gson, но результат был тот же.
 – 
Michal_Szulc
20 Дек 2016 в 00:38

1 ответ

Лучший ответ

Заменить

json tmpl.'short-training'(trainingList ?: [])

С участием

json tmpl.'short-training'("training", trainingList ?: []) 

Первый аргумент может использоваться для указания имени переменной модели.

1
Graeme Rocher 22 Дек 2016 в 11:12
Прекрасно работает! Спасибо.
 – 
Michal_Szulc
22 Дек 2016 в 13:53