我目前在 Rails 表单中有一个多选框,如下所示:
= select_tag :in_all_tags, options_from_collection_for_select(Tag.where(:project_id => @project.id), :id, :name, @in_all_tags_param), { :id => "tags", :tabindex => "3", "data-placeholder" => "Choose Tags", :multiple => "multiple" }
在哪里
@in_all_tags_param = params[:in_all_tags]
问题是,@in_all_tags_param
只会使用 from 的最后一个值填充选择表单params[:in_all_tags]
。因此,如果 url 字符串为in_all_tags=5&in_all_tags=8
,则多选中的预选值将仅为 8。
据我了解,解决这个问题的方法是附加[]
到多个参数的字段名称,这样:in_all_tags
就变成了in_all_tags[]
但是,当我尝试这个时,提交表单返回:
Expected type :default in params[:in_all_tags], got Array
任何建议表示赞赏。
干杯...