在db中保存多个选择表单数据

时间:2010-05-08 19:40:35

标签: ruby-on-rails ruby activerecord serialization

我有一些模型A的表单,它有几个字段:

  • tile
  • 描述
  • ...
  • 颜色

从多个选择中选择颜色,选项为['red', 'green', 'blue', 'yellow']。用户可以根据需要选择颜色。我不认为将Color模型和has_many关系作为在model A中存储颜色数据的良好解决方案。所以问题是:

如何在db中为多个选择表单存储多个数据?

1 个答案:

答案 0 :(得分:1)

如果颜色数量有限,则可以将其存储为字符串:“rby”表示用户选择了红色,蓝色和黄色。当然,您可以使用任何字符来表示任何颜色。在这个解决方案中,您可以轻松存储大约30-40种颜色(可能就足够了)。您也可以将它们存储为逗号分隔的单词:“红色,蓝色,黄色”,当您在Rails中获取它时,只需执行@a.colors.split(','),您就会得到一系列颜色名称。

虽然如果您想将其存储为字符串,但是您需要在控制器中编写更多代码以将colors字段转换为复选框,并在另一侧。