2011-05-20 55 views
0

我遇到了Grails項目中控制器最奇怪的問題。我正在嘗試做一個域對象的簡單更新。這裏是控制器無法保存域對象,直到使用CRUD腳手架

def updateRecord = { 
    def foundHVT = Process.get(params.hvt) 

    foundHVT.summaryBy = params.summaryBy 
    foundHVT.catalogBy = params.catalogBy 
    foundHVT.editBy = params.editBy 
    foundHVT.produceBy = params.produceBy 
    foundHVT.correctedBy = params.correctedBy 
    // a bunch more of these 

    foundHVT.save(flush: true); 

    redirect (action:resource, id: params.hvt) 
} 

的簡化版本,如果我運行的應用程序的一個新實例,並使用該控制器更新的對象,這是行不通的,對象不保存。它在控制器內看起來很好。例如,我可以重新查詢對象,並且更改在那裏,保存後。

現在,這裏是它變得奇怪。如果我使用預設的腳手架編輯控制器並更新/保存一個域對象 - 然後切換回這個「updateRecord」控制器,它會工作FINE,直到我關閉它正在處理的服務器?!?

我意識到我錯過了一些非常基本的東西,但我找不到它是什麼。任何指導都將受到最大的讚賞。

DM

+0

聽起來不對。你有沒有試過Grails清潔? – hvgotcodes 2011-05-20 19:50:35

+0

也,你有什麼異常?你是否啓用了SQL日誌記錄? – hvgotcodes 2011-05-20 19:50:59

+0

是的,對不起,我確實有這些,我只是在簡要介紹控制器的基本知識,而且它根本沒有報告任何錯誤。自從清理該項目以來,它一直運行良好。 – awfulHack 2011-05-25 20:12:14

回答

1

正如HVGOTCODES指出的那樣,Grails Clean似乎已經解決了這個控制器正在發生的任何問題。

0

嘗試把一個「高清支架=真」在你的控制器,如果它已經沒有正常的入口點。

0

大概是腳手架save填補了一些你不知道的領域。

可能出現的問題:

  1. 做檢查save()結果和渲染foundHVT.errors的Grails的方式做。將failOnError: true參數添加到save()或僅檢查。看看foundHVT.errors.allErrors驗證問題。

  2. 爲什麼不是foundHVT.properties = params

  3. 什麼是沒有foundHVT