F выберите множественный выбор не работает, используя в форме - PullRequest
0 голосов
/ 11 января 2019

Я работаю над проектом, используя ruby ​​на рельсах. Я создал форму со многими полями, и одно поле предназначено для заданий, в которых я хочу выбрать более одной работы, но теперь я не могу выбрать более одной работы со следующим кодом. Работаем с ruby ​​на рельсах 3 и HAML. Я также упоминаю multiple true, но все равно он не работает.

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

1 Ответ

0 голосов
/ 11 января 2019

Если вы проверите реализацию метода выбора построителя форм ( 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

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...