我有来自_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
等等。请帮忙。
提前致谢。
答案 0 :(得分: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