【问题标题】:Saving multiple select form data in db在数据库中保存多个选择表单数据
【发布时间】:2010-05-08 19:40:34
【问题描述】:

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

  • 平铺
  • 说明
  • ...
  • 颜色

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

这样的多选表单如何在db中存储多个数据?

【问题讨论】:

    标签: ruby-on-rails ruby activerecord serialization


    【解决方案1】:

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

    虽然如果你想将它存储为一个字符串,它需要你在控制器中编写更多代码来将colors 字段转换为复选框和另一端。

    【讨论】:

    • 这就是我现在的工作方式。一种 csv、:attr_accessor 和模型中的一些额外方法。但现在我试图了解是否有任何其他使用序列化或其他奇异东西的解决方案。无论如何,感谢您的反馈:)
    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 2019-01-19
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多