我有一个来自_form.gsp
的输入列表。即English, Science, Math, Music
以及其他student
信息。单击submit
按钮后,它将转到studentController
save
方法。
如果找不到,我想将Music
添加到course
数据库。
这就是我现在所拥有的。
def save(Student studentInstance) {
....
def courseInputList = params.course.tokenize(', ')
for (item in courseInputList){
def courseID = Course.findByCourseLike(item)
StudnetCourse.link(studentInstance,courseID)
}
....
}
我有一个自动完成功能,因此用户将开始输入内容,并会弹出一个列表供您选择。
我在
if (courseID == null) { }
下添加了def courseID = Course.findByCourseLike(item)
语句,但保存条件没有任何成功。我尝试了redirect``forward``new Course(item).save flush:true
等。请帮助。提前致谢。
最佳答案
您可以使用域的动态方法: 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
关于grails - Grails-如何从另一个 Controller 保存一个类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34681099/