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))
我决不会用强类型语言来做这件事