我正在使用在轨道上使用红宝石的项目。我创建了一个包含许多字段的表单,其中一个字段用于我想选择多于一个工作的工作,但是现在我无法使用以下代码选择多于一个工作。在rails 3和HAML上使用ruby。我还提到了multiple true
,但仍然无法正常工作。
= f.select :jobs, options_from_collection_for_select(Demojob.all, 'name','name' ), :multiple => true
答案 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
干杯!