Согласно веб-службам Grails
Я могу переопределить метод запрос для ресурса. Таким образом, я могу указать вложенный ресурс REST. например
"/authors"(resources:'author') {
"/books"(resources:'book')
}
Но док может ошибаться. Потому что он использует оператор присваивания = вместо оператора сравнения ==.
Запуская таким образом, я получаю следующую ошибку:
((id == id) && building.id) is a binary expression, but it should be a variable expression
Меняя оператор с = на ==, я получаю еще одну ошибку
Cannot query property "params" - no such property on class clash.BuildingLevel exists
Как правильно определить этот вложенный ресурс REST?
Вот мой метод queryForResource:
Я пробовал оба:
@Override
protected BuildingLevel queryForResource(Serializable id) {
if (params.buildingId) {
return BuildingLevel.where {
id == id && building.id = params.buildingId
}.find()
}
}
@Override
protected BuildingLevel queryForResource(Serializable id) {
if (params.buildingId) {
return BuildingLevel.where {
id == id && building.id == params.buildingId
}.find()
}
}