Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 RubyonRails4-简单的表单多选择输入_Ruby On Rails_Ruby_Simple Form - Fatal编程技术网

Ruby on rails RubyonRails4-简单的表单多选择输入

Ruby on rails RubyonRails4-简单的表单多选择输入,ruby-on-rails,ruby,simple-form,Ruby On Rails,Ruby,Simple Form,我有一个简单的表单输入字段,如下所示: <%= f.input :particular_users, collection: @all_users, input_html: { class: 'multiselectuser', multiple: true} %> 当我关闭multiple:true时,表单将提交为参数:special_users选择的值,并且在使用“raise params.inspect”进行调试时可以看到该值。但是,当我保留multiple:true选项

我有一个简单的表单输入字段,如下所示:

<%= f.input :particular_users, collection: @all_users, input_html: { class: 'multiselectuser', multiple: true} %>

当我关闭multiple:true时,表单将提交为参数:special_users选择的值,并且在使用“raise params.inspect”进行调试时可以看到该值。但是,当我保留multiple:true选项时,没有为参数:specific_users传递值

我做错了什么


编辑:我无法使用关联输入,因为:特定用户是虚拟属性,没有关系。我希望多个选择框传递其中的任何值,即使它们是任意的。

要使用
简单表单创建多个选择标记,请使用:

<%= f.association :particular_users, collection: @all_users, input_html: { class: 'multiselectuser'} %>

它确实按照我想要的方式工作。诀窍是告诉强参数允许散列。它不会抛出一个强参数错误,参数只是被抛出,无法通过。因此我将其设置为例如:params.require(:survey.permit(:special_users=>[])

我收到错误:Association:Special_users找不到,因为:Special_users是虚拟属性而不是关联。我不想选择关联,我只想让参数传递多重选择框中的内容,即使它们是任意值。那么简单的表单不是适合您的工具。使用
select\u tag
构建您的自定义select。它实际上就是我想要的。我贴出了正确的答案。你能解释一下你在这里做什么吗。这将有助于解决一个问题,如果你使用简单的表单gem,并希望多个选择,只需将此属性添加到输入中,你明白了吗?我的强参数中列出了一个数组,但无法解决这个问题。
<%= select_tag 'particular_users', 
       options_from_collection_for_select(@all_users, :id, :name), 
       multiple: true, class: 'multiselectuser' %>
f.input :days, collection: @your_collection, input_html: { multiple: true }