2012-10-11 47 views
4

我有一個表單(form_for),我希望用戶能夠使用select方法選擇多個「類別」。使用jQuery創建表單並將數組從表單傳遞給控制器​​

= form_for @place, :url=>{:action=>"#"} do |f| 
    #appended_wrapper 
    .categories 
    = f.label :categories, "Categories: " 
    = f.select :categories, %w(Active Art Auto Food), {:include_blank => true} 
    = f.submit "Submit" 

每次用戶選擇一個類別,我有jQuery的追加與類別值的DIV,使用戶可以看到並刪除他們已添加的類別。

$('#hotel_categories').change(function(){ 
    value = $(this).val(); 
    $('#appended_wrapper').append('<div class="appended"> '+value+' <a class="remove" href="#">Remove</a></div>'); 

    $('.remove').click(function(){ 
    $(this).parent(".appended").remove(); 
    }); 

}); 

當我按下提交按鈕,我希望所有選定的類別被傳遞給我的控制器在一個數組中。

我該如何做到這一點?

謝謝。

回答

3

裏面的DIV,添加一個隱藏的輸入字段像這樣的:

<input name="category_ids[]" type="hidden" value="1"> 

的值表示類別的ID。注意category_ids旁邊的方括號。 所有隱藏的輸入必須具有完全相同的名稱。

這些值將通過控制器中的參數散列中的數組來實現。

+0

我要試試這個。會回到你們身上。 – Huy

+0

該值是否可以簡單地成爲實際字符串(即「活動」或「食物」)而不是類別的ID? – Huy

+0

謝謝 - 這工作和軌道承認多重選擇作爲參數哈希中的數組! – Huy

相關問題