2010-05-08 81 views
0

我已经得到形式对一些模型A,这已经得到了几个字段:保存多个选择表单数据

  • 描述
  • ...
  • 颜色

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

如何存储多个数据分贝为这种多选形式?

回答

1

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

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

+0

这就是我现在工作的方式。类型csv,:attr_accessor以及模型中的其他几个方法。但现在我试着了解是否有任何其他解决方案使用序列化或其他奇特的东西。无论如何,感谢您的反馈:) – fl00r 2010-05-08 20:10:42