我需要創建一個在任何保存/更新操作中觸發的過濾器,以便記錄正在完成的操作的歷史記錄。我有一個問題獲取正在操作的對象的ID。訪問過濾器中的params.id問題
我控制器簡化:
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])
}
}
}
我的過濾器需要得到我把回報重定向對象的ID,但除非我取消params.id = fooInstance.id我上面的過濾器PARAMS變空。 ID,我必須失去了一些東西處理變量的作用域:
def filters = {
history(controller: '*', action: 'save|update|delete|restore') {
after = {
println params.id
}
}
}
我也試過路過模型後=期望得到我的fooInstance但我得到空爲好。任何想法什麼是錯的?謝謝。
我希望params.id將爲空保存,但不適用於更新/刪除(因爲params代表請求參數 - 保存時,該實體還不存在,因此可能沒有id )。這是你所看到的嗎? – 2012-02-17 04:22:02