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

标签 forms grails grails-orm one-to-many

我有两个类(class):书籍和作者;一个作者可以有很多本书,而一本书属于一个作者。

我需要创建一个表格来添加一本书。当按下创建按钮时,我想创建书籍记录和作者记录。目前,默认脚手架呈现一个列表框以从现有作者中进行选择,因此我需要将其替换为文本框。

这是我的类(class)的简化版本:

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

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

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

谢谢。

最佳答案

您可以创建一个包含 2 个文本框的表单,一个用于书名,一个用于书名。我会假设作者的名字是唯一的, Controller 的代码将是这样的:

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()
}

关于forms - Grails如何为所有者创建所有者的一对多关系创建表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21148911/

相关文章:

javascript - 我如何通过 JavaScript 或 JQuery 或...验证所有选择框都有一个选定的选项?

html - Kentico 表格 - 2 列并响应移动设备

grails - 验证后对象没有持久化,没有错误

grails - Spring Boot、GORM 和单元测试

python - 如何在模型表单验证中访问 id?

python flask ImmutableMultiDict

amazon-web-services - Grails AWS SDK 插件无法解析 PutObjectRequest

grails - 使用Grails订购 View 中的对象集合

grails - 为什么在 Grails/GORM 中使用三个条件时 findAllBy* 会失败?

grails - 如何使用 List<Double> 填充 Grails 域类