Grails - 如何从不同的控制器保存一个类实例?

时间:2016-01-08 15:58:29

标签: grails controller save grails-domain-class

我有来自_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等等。请帮忙。

提前致谢。

1 个答案:

答案 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