id存在于params中但不保存到db。例如
[book.id:1, comments: good]
注释将保存到db但book.id不会。
我需要弄清楚如何将params.book.id保存到从hasmany / belongsTo关系创建的db列BOOK_ID中。
答案 0 :(得分:0)
默认情况下,每个元素的value属性将是每个元素上的toString()调用的结果。将其设置为optionKey允许该值为列表中每个元素的bean属性。
请将选择更改为
<g:form action="review">
<g:select name="book.id"
from="${item.Book.list()}"
value="${book?.id}"
/>
<g:textField name="bookreview" value="${params?.bookreview}" /><br>
请参阅以下链接
答案 1 :(得分:0)
您已覆盖toString
,因此您的图书始终由name
而不是id
呈现。如果您删除了toString()
方法,则会看到预期结果。
如果您希望选择框使用名称,只需添加optionValue="name"
。
答案 2 :(得分:0)
好吧,似乎我在我的域名中拼错了一个关键参数。所以该域名期待x并且它正在变得越来越高。因此id始终为null。我花了一段时间才发现它,我感到很困惑,因为我之前已经在另一个项目中成功实现了id。 Grails有一些jira问题也让人考虑其他可能性,但这次是我的错误。