2016-01-08 39 views
0

我有一個從_form.gsp進來的輸入列表。即English, Science, Math, Music以及其他student信息。當點擊submit按鈕時,它將轉到studentControllersave方法。Grails - 如何從一個不同的控制器保存一個類實例?

如果找不到,我想將Music添加到course數據庫。

這就是我現在所擁有的。

def save(Student studentInstance) { 
.... 
    def courseInputList = params.course.tokenize(', ') 
     for (item in courseInputList){ 
      def courseID = Course.findByCourseLike(item) 
      StudnetCourse.link(studentInstance,courseID) 
     } 
.... 
} 

我有一個自動完成,所以用戶將開始輸入,並且會彈出一個列表供您選擇。

我在def courseID = Course.findByCourseLike(item)下增加了if (courseID == null) { }聲明,但我沒有任何保存條件的成功。我試過redirect``forward``new Course(item).save flush:true等請幫忙。

在此先感謝。

+0

做你'failOnError嘗試:TRUE',看看是否有錯誤? – emilan

回答

0

您可以使用域的動態方法:findOrCreateBy *。在你的情況下,它會像:

def courseInputList = params.course.tokenize(', ') 

for (item in courseInputList){ 
     def courseID = Course.findOrCreateByCourseLike(item) 
     StudnetCourse.link(studentInstance,courseID) 
} 

更多信息,你可以在這裏找到:http://grails.github.io/grails-doc/2.3.x/ref/Domain%20Classes/findOrCreateBy.html

+0

很好,它工作。我需要保存的課程,所以我使用了'findOrSaveBy'。謝謝。 –

相關問題