2015-06-22 83 views
0

我的形式有这样的多选元素:Rails的PARAM哈希包含多个阵列的阵列选择

<select id="startup_markets" multiple="multiple" name="startup[markets][]" style="width:100%"> 
    <option value="fashion">Fashion</option> 
    <option value="startups">Startups</option> 
    <option value="apps">Apps</option> 
    <option value="social-media">social media</option> 
    <option value="email-marketing">Email Marketing</option> 
</select> 

提交后身体看起来像在此之后:

----- -WebKitFormBoundaryiICoZLa9BoF6eFMx内容处理:表单数据; name =“startup [markets] []”

fashion ------ WebKitFormBoundaryiICoZLa9BoF6eFMx Content-Disposition:form-data; NAME = “启动[市场] []”

初创

但是在轨道上,我得到了市场的数组的数组:

(byebug) params["startup"]["markets"] 
[["fashion", "startups"]] 

不是它应该是刚刚["fashion", "startups"] ?我可能在这里做一些愚蠢的事情,但无法弄清楚什么是错的。谢谢您的帮助。

+0

对不起球员,我的工作在别人的项目,并没有注意到有一个过滤器的设置,达成控制方法之前操纵params哈希表。浪费时间,并在提交给SO后发现问题:@ – hassansin

回答

2

选择名称可能应该是name="startup[markets]"

同样在Ruby端,您可以通过调用数组flatten方法处理。

params["startup"]["markets"].flatten 

将导致

=> ["fashion", "startups"] 
+0

原来,这是一个过滤器,修改了params散列。谢谢你的扁平化建议。 – hassansin