f选择多个选择在表单中不起作用

时间:2019-01-11 11:32:15

标签: ruby-on-rails

我正在使用在轨道上使用红宝石的项目。我创建了一个包含许多字段的表单,其中一个字段用于我想选择多于一个工作的工作,但是现在我无法使用以下代码选择多于一个工作。在rails 3和HAML上使用ruby。我还提到了multiple true,但仍然无法正常工作。

= f.select :jobs, options_from_collection_for_select(Demojob.all, 'name','name' ), :multiple => true 

1 个答案:

答案 0 :(得分:1)

如果您检查表单构建器选择方法(github)的实现,则会看到方法签名为:

select(method, choices = nil, options = {}, html_options = {}, &block)

multiple标志应使用html_options哈希而不是options传递。您的情况应该是:

f.select :jobs, options_from_collection_for_select(Demojob.all, 'name', 'name'), {}, :multiple => true

或者,如果您更喜欢新的哈希语法,甚至更好:

f.select :jobs, options_from_collection_for_select(Demojob.all, 'name', 'name'), {}, multiple: true

最后,无需在表单构建器中使用options_from_collection_for_select,您只需将选项作为数组传递即可。

f.select :jobs, Demojob.all.collect { |job| [job.name, job.name] }, {}, multiple: true

干杯!