Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails使用文本字段而不是多选字段_Ruby On Rails 4_Collections_View - Fatal编程技术网

Ruby on rails 4 Rails使用文本字段而不是多选字段

Ruby on rails 4 Rails使用文本字段而不是多选字段,ruby-on-rails-4,collections,view,Ruby On Rails 4,Collections,View,我的父子关系正在使用多选视图 = f.collection_select :item_ids, Item.order("name ASC").all, :id, :name, {}, {:multiple => true, class: "form-control"} 它允许用户在multi-select中选择多个项目并工作 但是,我想将用户限制为三个项目,并希望他们将其键入一个typeahead样式的文本字段中 = f.text_field "item_ids[]", {cla

我的父子关系正在使用多选视图

    = f.collection_select :item_ids, Item.order("name ASC").all, :id, :name, {}, {:multiple => true, class: "form-control"}
它允许用户在multi-select中选择多个项目并工作

但是,我想将用户限制为三个项目,并希望他们将其键入一个typeahead样式的文本字段中

= f.text_field "item_ids[]", {class: "form-control item-autocomplete", autocomplete: "off"}
= f.text_field "item_ids[]", {class: "form-control item-autocomplete", autocomplete: "off"}
= f.text_field "item_ids[]", {class: "form-control item-autocomplete", autocomplete: "off"}
我在弄清楚如何替换视图时遇到了一些问题,并且仍然让控制器像在items_id[]之前那样接受输入

我认为这是直截了当的,但似乎无法理解


任何帮助都将不胜感激。

最终我不得不破解我自己的解决方案,我并不为此感到骄傲,但由于没有专家回答我的问题,我仍然需要解决这个问题,我觉得自己很脏,于是破解了它

为了解决这个问题,我手动创建了输入,这些输入都使用名称profile[item_ids][]推送到一个数组中,但它们不是传递id,而是传递字符串

然后在控制器中,我创建了一个执行项查找的方法,构建了一个ID数组,并用新数组交换了param散列值。为了保留白名单参数,我将白名单参数传递给它,并返回一个新的散列,该散列包含带有新值的项_id,如下所示

if @profile.update(convert_item_names_to_ids(profile_params))
我决不会用强类型语言来做这件事