Grails如何为所有者创建所有者的一对多关系创建表单

时间:2014-01-15 21:46:24

标签: forms grails gorm one-to-many

我有两个班:书和作者;作者可以拥有许多书籍,一本书属于一位作者。

我需要创建一个用于添加图书的表单。按下创建按钮时,我想创建图书记录和作者记录。目前,默认脚手架呈现一个列表框以从现有作者中进行选择,因此我需要用文本框替换它。

以下是我的课程的简化版本:

class Book {
    static belongsTo = [author:Author]
    String title
}

class Author {
    static hasMany = [books:Book]
    String name
}

我在网上找到的所有教程都只包含作者表格的例子,也是创建书籍而不是相反的方式。如何做到这一点?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以创建一个包含2个文本框的表单,一个用于书名,另一个用于书籍作者。我将假设作者的名字是唯一的,控制器的代码将类似于:

def saveBookForm(String title, String name) {
    Author author = Author.findByName(name)
    if (author == null) {
        author = new Author(name:name).save()
    }
    new Book(title:title, author:author).save()
}

答案 1 :(得分:0)

如何创建另一个具有book和author实例的Domain类BookAuthor。

等等 Grails form creation for many-to-one belongsTo

然后再做

grails generate-all BookAuthor

我认为这可以帮助您创建两个记录。