0

我有两个域类。Arequest应该映射到一个color. color域有 3 个不同的选项黄色、红色、绿色(稍后可能会有更多选项(条目))。因此,当用户保存一个新的时,request我希望它与其中一个相关联colors。在request _formI'm going to have yellow, red, green 中的一个select选项中Colors.list()。注意:这是我的真实模型的一个过度简化的示例。

问题:

  • 我应该使用哪个映射关联?(我希望每个都request与一个相关联color

  • 当我从表单中获得输入时,我color将如何存储?request

4

2 回答 2

0

为了保持颜色,您有几个选择:

  1. color如果是用户提供的,或者不是来自预定义的集合,则将其保存为字符串。
  2. 为您预期拥有的每个颜色值使用或创建一个枚举。如果您仅有的三种颜色是黄色、红色和绿色,那么这绝对是您更好的选择。

然后,在域上,您只需要使用 name 定义一个字段(您的枚举类型或字符串)color,它将作为 varchar 保存在数据库中。

在您的控制器中,当请求来自表单时,它将存储在params对象中,以您为字段提供的名称,即params.yourColor.

于 2013-01-16T20:21:06.033 回答
0

因此,您的选择框选项应该将颜色的 id 作为值。如果颜色域类称为颜色,则请求域类将简单地具有一个Color color,如果您使用数据绑定,只要您的选择框的名称是color. 如果您不使用数据绑定:

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

于 2013-01-17T00:35:29.470 回答