4

我有一个表单 (form_for),我希望用户能够使用 select 方法选择多个“类别”。

= 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();
  });

});

当我按下提交按钮时,我希望所有选定的类别都以数组的形式传递给我的控制器。

我如何实现这一目标?

谢谢。

4

1 回答 1

3

在您的 div 中,添加一个隐藏的输入字段,如下所示:

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

该值表示类别的 id。请注意 category_ids 旁边的方括号。所有隐藏的输入必须具有完全相同的名称。

这些值将作为一个数组出现在控制器中的 params 哈希中。

于 2012-10-11T10:41:11.923 回答