Ruby on Rails 4 - входной сигнал с несколькими параметрами simple_form
У меня есть поле ввода simple_form, которое выглядит так:
<%= f.input :particular_users, collection: @all_users, input_html: { class: 'multiselectuser', multiple: true} %>
Когда я оставляю несколько: true off, форма отправляет выбранное значение для параметра: specific_users, и я могу увидеть это значение при отладке с помощью параметра "raise params.inspect". Однако, когда я оставляю параметр multiple: true, никакие vales не передаются для параметра: specific_users.
Что я делаю неправильно?
EDIT: Я не могу использовать вход ассоциации, потому что: specific_users - это виртуальный атрибут и не имеет отношения. Я хочу, чтобы поле множественного выбора передавало любые значения, которые находятся там, даже если они произвольны.
Ответы
Ответ 1
Он действительно работает так, как я этого хотел. Хитрость заключается в том, чтобы показать сильные параметры, чтобы разрешить хэш. Он не бросает сильную ошибку параметров, параметр просто выкидывается и не проходит. Поэтому я установил его, например: params.require(: survey).permit(: specific_users = > []).
Ответ 2
f.input :days, collection: @your_collection, input_html: { multiple: true }
Ответ 3
Чтобы создать несколько тэгов select с simple_form
, используйте:
<%= f.association :particular_users, collection: @all_users, input_html: { class: 'multiselectuser'} %>
см. часть Associations
в описании .
Но поскольку вы не хотите использовать ассоциацию ActiveRecord, используйте select_tag
:
<%= select_tag 'particular_users',
options_from_collection_for_select(@all_users, :id, :name),
multiple: true, class: 'multiselectuser' %>