Мне нужно создать фильтр, который запускается при любом действии сохранения / обновления, чтобы записывать историю того, что было сделано. У меня проблема с получением идентификатора объекта, которым манипулируют.
Мои контроллеры упрощены:
class FooController {
static allowedMethods = [save: "POST", update: "POST", delete: "POST"]
def save = {
def fooInstance = new Foo(params)
if (fooInstance.save()) {
// params.id = fooInstance.id
return redirect(action: "show", id: fooInstance.id)
} else {
return render(view: "create", model: [fooInstance: fooInstance])
}
}
}
Мой фильтр должен получить идентификатор объекта, который я помещаю в обратный редирект, но если я не раскомментирую params.id = fooInstance.id выше, мой фильтр получит значение null для params.id, я должен что-то упустить, что касается области переменная:
def filters = {
history(controller: '*', action: 'save|update|delete|restore') {
after = {
println params.id
}
}
}
Я также попытался передать модель в after =, ожидая получить мой fooInstance, но я также получил null. Есть идеи о том, что не так? Спасибо.