Различный (оба плохой) вывод для рендеринга и ответа на пользовательский gson

Я использую 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 при использовании рендеринга, но дальше не передаются. ответить вообще не проходить тренинги. что мне не хватает?


person Michal_Szulc    schedule 19.12.2016    source источник
comment
Я пробовал также без тире внутри имен gson, но результат был тот же.   -  person Michal_Szulc    schedule 20.12.2016


Ответы (1)


Заменять

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

С

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

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

person Graeme Rocher    schedule 22.12.2016
comment
Работает отлично! Спасибо. - person Michal_Szulc; 22.12.2016