2012-07-13 49 views
0

id存在於參數中,但不保存到db。例如Grails麻煩保存對象ID

[book.id:1, comments: good] 

註釋將保存到數據庫,但book.id不會。

我需要弄清楚如何將params.book.id保存到從hasmany/belongsTo關係創建的db列BOOK_ID中。

+1

你確定嗎?你看過數據庫嗎?我認爲它保存了ID ... – 2012-07-13 15:55:40

+0

是的,腳手架將保存身份證,但它不會從控制器保存。我想我不知道如何分配params.book.id。我沒有意識到這是在腳手架上存儲ID。我將不得不編輯我想問的問題。謝謝。 – Universitas 2012-07-13 16:46:47

回答

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> 

敬請參閱以下鏈接

Grail example with optionkey

0

已覆蓋toString,因此你的書總是被name,而不是渲染id。如果你刪除你的toString()方法,你會看到預期的結果。

如果您希望您的選擇框使用名稱,只需添加optionValue="name"即可。

0

好吧,似乎我拼錯了我的域內的一個關鍵參數。所以這個域名期待x而且它正在變成y。因此,id始終爲空。我花了一段時間才發現它,而且我很困惑,因爲我以前在另一個項目中成功實施了ID。 Grails也有一些jira問題,讓人考慮其他可能性,但這次是我的錯誤。