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 }