我对有疑问,请从Book 中删除作者。
我在一对多单向关系中有Book类和Author类:
class Book{
String isbn
...
List<Author> authors
static hasMany = [ authors: Author ]
}
class Author {
String firstname
String lastname
...
}
注意:在“作者”类中,没有归属于。
我使用动态形式:
请注意按钮添加作者和删除作者。我使用JavaScript附加html代码来形成表单或从表单中删除html代码。
之后,我将类Book保存在 Controller 中:
def save = {
def book = new Book()
if (params.id){
book = Book.get(params.id)
}
book.properties = params
if( book.save() ){
redirect(controller:"book", action:"all")
return
}else{
render(view:'form', model:["book": book])
return
}
}
对于添加作者和编辑作者的来说,效果很好,但是对于删除作者来说,效果不佳。
如果我使用“删除作者”按钮并单击“提交表单”,则作者不会从Book 中删除。
编辑之前有所有作者。
请,您能帮我解决这个问题吗?
这是解决这个问题的好方法吗?
非常感谢
汤姆
最佳答案
Grails无法知道您要删除的作者,除非您在请求中发送了要删除的作者ID以及要删除的Grails的明确指令。截至目前,没有任何params作者并不意味着删除author。
因此,您将需要在表单中执行某些操作,以便在“删除作者”时将要删除的作者ID存储在隐藏字段中,并指明要删除的作者。然后像...
def authorToRemove = Author.get(params.authorId)
def book = Book.get(params.id)
book.removeFromAuthors(authorToRemove)
关于grails - Grails:动态形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6621690/