0

requestにマップする必要がある2つのドメインclasses.Aがありますcolorcolorドメインには、黄色、赤、緑の3つの異なるオプションがあります(後でさらに多くのオプション(エントリ)が存在する可能性があります)。したがって、ユーザーが新しいものを保存するときに、そのrequestいずれかに関連付けたいと思いcolorsます。からのオプションrequest _formで黄色、赤、緑を使用します。注:これは、私の実際のモデルがどのように見えるかを示す非常に単純化された例です。selectColors.list()

質問:

  • どのマッピング関連付けを使用する必要がありますか?request(それぞれを1つに関連付けたいcolor

  • フォームから入力を受け取った場合、どのように保存colorしますか?request

4

2 に答える 2

0

色を永続化するには、いくつかの選択肢があります。

  1. colorがユーザー提供の場合、または事前定義されたセットからではない場合は、文字列として保存します。
  2. 予想される各 Color 値の列挙型を使用または作成します。黄色、赤、緑の 3 色しかない場合は、これが間違いなく最適なオプションです。

次に、ドメインで、フィールド (列挙型または文字列のいずれか) を name で定義するだけcolorで、データベースに varchar として永続化されます。

コントローラーでは、リクエストがフォームから送信されるとparams、フィールドに付けた名前でオブジェクトに保存されますparams.yourColor

于 2013-01-16T20:21:06.033 に答える
0

したがって、選択ボックスのオプションには、値として色の ID が必要です。Color colorカラー ドメイン クラスが color と呼ばれる場合、リクエスト ドメイン クラスには単に. データ バインディングを使用している場合は、選択ボックスの名前がcolor. データバインディングを使用していない場合:

new Request(...color: Color.get(params.nameOfSelectBox))

于 2013-01-17T00:35:29.470 に答える