Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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
Arrays 使用带有“”的“form_”返回数组?_Arrays_Ruby On Rails_Formbuilder_Form With - Fatal编程技术网

Arrays 使用带有“”的“form_”返回数组?

Arrays 使用带有“”的“form_”返回数组?,arrays,ruby-on-rails,formbuilder,form-with,Arrays,Ruby On Rails,Formbuilder,Form With,在我看来,我有几个复选框,我想返回一个被选中的数组。我通过自己编写HTML实现了这一点,但我想知道是否有一种方法可以使用FormBuilder\check_box实现这一点 我的工作 拉布拉多 深沉沙哑的 这非常有效:params包含我所期望的内容。如果我选中“赫斯基”框并提交,“品种”数组包含“赫斯基”: “狗”=>{“品种”=>[“哈士奇”]} 但是我想知道是否有一种方法可以使用我的表单。为此,请选中复选框,而不是自己写下复选框HTML 我为FormBuilder>所做的尝试复选框

在我看来,我有几个复选框,我想返回一个被选中的数组。我通过自己编写HTML实现了这一点,但我想知道是否有一种方法可以使用
FormBuilder\check_box
实现这一点

我的工作

拉布拉多
深沉沙哑的
这非常有效:
params
包含我所期望的内容。如果我选中“赫斯基”框并提交,“品种”数组包含“赫斯基”:

“狗”=>{“品种”=>[“哈士奇”]}
但是我想知道是否有一种方法可以使用
我的表单。为此,请选中
复选框,而不是自己写下复选框HTML

我为
FormBuilder>所做的尝试复选框

拉布拉多
深沉沙哑的
这不符合我的期望。在
参数中
,无论我选中哪个框,“品种”数组始终为空:

“狗”=>{“品种”=>[]
有没有办法使用
FormBuilder
帮助程序来完成我要做的事情?
看起来真的应该有,但我在任何地方都找不到。

你应该可以这样做:

<%= form_with model: @dog, local: true do |my_form| %>
  <% ['labrador','husky'].each do |breed| %>
      <%= my_form.check_box :breeds, {multiple: true}, breed%>
      <%= my_form.label :breeds, breed.titleize %>
  <%end%>
  <%= my_form.submit 'Save' %>
<% end %>

复选框
的签名是
(对象名称、方法、选项={},选中值为1,未选中值为0”)

由于您使用的是表单生成器,
对象名称
可以省略,因为它将是
我的表单

所以我们通过:

  • 方法
    :繁殖
  • 选项
    {multiple:true}
    以创建一个集合
  • 选中的
    值将是品种名称