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' %>