2015-06-22 84 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