我簡直就是剛剛開始使用grails並剛剛生成一些腳手架。 似乎有一些非常通用的代碼在這裏將在每個控制器中重複。將樣板代碼從控制器中移出
- 測試的get()方法是否成功
- 樂觀鎖定檢查
你會如何建議從控制器刪除此? 理想我想只是做一個
def personInstance = Person.get(id)
,然後對每個控制器什麼是在每一個控制器生成默認的一個異常處理程序做的。
def update(Long id, Long version) {
def personInstance = Person.get(id)
if (!personInstance) {
flash.message = message(code: 'default.not.found.message', args: [message(code: 'person.label', default: 'Person'), id])
redirect(action: "list")
return
}
if (version != null) {
if (personInstance.version > version) {
personInstance.errors.rejectValue("version", "default.optimistic.locking.failure",
[message(code: 'person.label', default: 'Person')] as Object[],
"Another user has updated this Person while you were editing")
render(view: "edit", model: [personInstance: personInstance])
return
}
}
謝謝我不知道關於grails安裝模板。 我想使用樂觀鎖 - 我只是不想手動檢查每個控制器使用基本相同的代碼。 – SuprF1y 2013-02-10 23:25:49