rails form select multiple给出第一个空值

mje*_*ins 1 forms ruby-on-rails

我在膳食和食谱之间定义了has_and_belongs_to_many关联.在Meals创建表单中,我使用select来填充食谱.

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {}, :multiple => true %>
Run Code Online (Sandbox Code Playgroud)

但结果集的第一个值为零.

"recipes"=>["", "2", "7"]
Run Code Online (Sandbox Code Playgroud)

如何消除空/零值?

Zuh*_*Ali 12

对我来说,设置:include_hidden => false是有效的

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {:include_hidden => false}, :multiple => true %>
Run Code Online (Sandbox Code Playgroud)

  • [此处](https://api.rubyonrails.org/v5.1/classes/ActionView/Helpers/FormOptionsHelper.html)有一些关于此的文档。 (2认同)

Rok*_*san 0

您可以通过传递来拒绝空白选项:include_blank => false

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {:include_blank => false}, :multiple => true %>
Run Code Online (Sandbox Code Playgroud)

您可以设置提示如下

<%= f.select :recipes, Recipe.all.collect { |x| [x.name, x.id]}, {:include_blank => "Please Select"}, :multiple => true %>
Run Code Online (Sandbox Code Playgroud)