2017-07-12 4 views
0

複数の選択されたドロップダウン値をGrailsの1つの列に保存する方法は? 入力が選択した複数のドロップダウン値をGrailsの1つの列に保存します

<g:select name="item1Price" from="${1..10}"/> 
<g:select name="item2Price" from="${1..10}"/> 
<g:select name="item3Price" from="${1..10}"/> 

と出力のようになりますので、うまくいけば、やや漠然とした答えはあまりにも参考になります、1つのフィールド

ItemPrice: 2,8,6 

答えて

0

あなたの質問は少しあいまいですに格納する必要があります!あなたはドメインオブジェクトはFooている場合

:あなたのコントローラのアクションで次に

を、あなただけのような何かすることができます

def save() { 
    Foo f = new Foo() 
    f.itemPrice = [params.item1Price, params.item2Price, params.item3Price].join(",") 
    f.save() 
} 

は本当にあなたが何をしようとしているすべての参加は、あなたのあなたのページのパラメータを1つの文字列に変換できますか?

これは実際に私にとっては悪いデザインのようです。注文が変更された場合、またはアイテム2に何も選択されていない場合はどうなりますか?誰かがあなたのオブジェクトを編集したいと思って、値を解析する必要がある場合はどうなりますか?明らかにコンマで区切ることができます。値の1つにコンマが入るまで!

フィールドごとに異なる値を格納したり、単一のフィールドを構造化値として保存したりするほうがよいでしょう。たとえば、ドメインオブジェクト内に1つのフィールドしか持たない場合は、マップをJSONにエンコードして格納することができます。

+0

item2Priceとitem3Priceがない場合、コンマ(、)を削除するにはどうすればよいですか?その「10、」、 –

関連する問題