Я должен создать фильтр, который включается, любой сохраняет/обновляет действие для записи истории того, что делается. У меня есть проблема при получении идентификатора объекта, которым управляют.
Мои контроллеры упростили:
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 выше моего фильтра становится пустым для params.id, я должен пропускать что-то имеющее дело с объемами переменной:
def filters = {
history(controller: '*', action: 'save|update|delete|restore') {
after = {
println params.id
}
}
}
Я также попробовал передающую модель к после = ожидание получить мой fooInstance, но я становлюсь пустым также. Какие-либо идеи обо что случилось?Спасибо.
Посмотрите этот плагин http://grails.org/Hibernate+Events+Plugin или плагин журнала аудита grails. Я думаю, они уведут вас довольно далеко.
Это другой подход, чем вы упомянули в своем вопросе, но я думаю, что вы можете предпочесть его.