我有一些模型A
的表单,它有几个字段:
从多个选择中选择颜色,选项为['red', 'green', 'blue', 'yellow']
。用户可以根据需要选择颜色。我不认为将Color
模型和has_many
关系作为在model A
中存储颜色数据的良好解决方案。所以问题是:
如何在db中为多个选择表单存储多个数据?
答案 0 :(得分:1)
如果颜色数量有限,则可以将其存储为字符串:“rby”表示用户选择了红色,蓝色和黄色。当然,您可以使用任何字符来表示任何颜色。在这个解决方案中,您可以轻松存储大约30-40种颜色(可能就足够了)。您也可以将它们存储为逗号分隔的单词:“红色,蓝色,黄色”,当您在Rails中获取它时,只需执行@a.colors.split(',')
,您就会得到一系列颜色名称。
虽然如果您想将其存储为字符串,但是您需要在控制器中编写更多代码以将colors
字段转换为复选框,并在另一侧。