0

id は params に存在しますが、データベースには保存されません。例えば

[book.id:1, comments: good]

コメントは db に保存されますが、book.id は保存されません。

hasmany/belongsTo 関係から作成された db 列 BOOK_ID に params.book.id を保存する方法を理解する必要があります。

4

3 に答える 3

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 の例

于 2012-07-13T16:56:39.170 に答える
0

を上書きtoStringしたため、ブックは常に によってレンダリングされname、 ではありませんid。メソッドを削除するtoString()と、期待どおりの結果が得られます。

選択ボックスを名前で機能させたい場合は、追加するだけoptionValue="name"です。

于 2012-07-13T17:25:34.920 に答える
0

ドメイン内の重要なパラメータのスペルを間違えたようです。したがって、ドメインは x を予期していて、y を取得していました。したがって、id は常に null でした。それを見つけるのにしばらく時間がかかり、以前に別のプロジェクトで id の実装に成功したことがあったため、当惑しました。Grails には、別の可能性を考えさせる jira の問題もいくつかありますが、今回は私のミスでした。

于 2012-07-16T16:15:44.953 に答える