2013-01-16 155 views
0

我有兩個域類.A request應映射到colorcolor域有3個不同的選項黃色,紅色,綠色(在稍後的點可能有更多的選項(條目))。因此,當用戶保存新的request我希望它與colors之一相關聯。在request_form我會從Colors.list()select選項中有黃色,紅色,綠色。注意:這是我的真實模型看起來像過度簡化的例子。GORM關係映射

問:

  • 哪個映射關聯,我應該使用? (我希望每個request與一個color關聯)

  • 我如何保存在我的requestcolor當我從形式獲取輸入?

回答

0

對於持續的顏色,你有幾個選擇:

  1. 將它保存爲一個字符串,如果color爲用戶提供的,或者不是從一組預定義。
  2. 使用或創建您預期具有的每個顏色值的枚舉。如果你只有三種顏色是黃色,紅色和綠色,那麼這對你來說絕對是更好的選擇。

然後,在域,你只需要一個名爲color定義一個字段(或者您的枚舉類型,或字符串),它會堅持在數據庫中的VARCHAR。

在您的控制器中,當請求通過表單發送時,它將存儲在params對象中,並以您給出的字段名稱(即params.yourColor)存儲。

+0

我打算有'color'作爲一個單獨的域類,因爲在某些時候管理員可以添加/刪除它更多的項目。 – birdy

0

因此,您的選擇框選項應該有顏色的id作爲值。如果顏色域類稱爲顏色,則請求域類將只有一個Color color。如果你正在使用數據綁定,只要你的選擇框的名稱是color,它應該連接好。如果你不使用數據綁定:

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