形成多重选择

我正在学习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 

这样可以避免在存储对象之前必须序列化和反序列化对象的问题。