形成多重选择
我正在学习rails并且已经在这一天中苦苦挣扎了一天,并且无法弄清楚如何让它工作。 我希望我的表单中有一个可以选择多个元素的选择框。 我有这个使用此代码:
1, "B"=>2, "C"=>3, "D"=>4},{},:size=>5,:multiple=>true %>
这工作正常,并生成此HTML:
A B C D
我能弄清楚结果是如何发送/存储的。 在我对“show”动作的看法中,如果我只是打印出来:产品我得到了这个:
产品:— – ‘1’ – ‘2’ – ‘3’
如果我打印出来:products.inspect我得到这个:
产品:“— \ n-‘1’\ n-‘2’\ n-‘3’\ n”
这个类是一个字符串。 我认为它将存储为一个数组,但我不能让它工作。 我不知道破折号或换行符的来源。
我会考虑将选项添加为模型上的has-many关系。 因此,您可以迭代它们,附加它们并以(IMO)更好的方式将它们包含在多个选择中。
我会在我的模型中做一些事情:
has_many :special_options
在我看来:
f.select :special_options, :multiple => true
这样可以避免在存储对象之前必须序列化和反序列化对象的问题。