Rails grouped_collection: выбрано

Следующее работает для выбора основной рабочей группы текущего пользователя в раскрывающемся списке:

        <%= f.association :workgroup, :collection => Workgroup.all, :label_method => :group_name, :label => '1) Work Group', :selected => current_user.employee.priworkgroup_id %>

Но как вы установите :selected для grouped_collection_select?

Попытки кода:

        <%= f.grouped_collection_select :employee_id, Workgroup.order(:id), :employees, :group_name, :id, :employee_full_name, :selected => current_user.employee.id %>

        <%= f.grouped_collection_select :employee_id, Workgroup.order(:id), :employees, :group_name, :id, :employee_full_name, :include_blank => true, :selected => [current_user.employee.priworkgroup_id, current_user.employee.id] %>

Update1

Читая о grouped_collection_select, я нашел selected_key

Я попробовал это, но это не сработало:

<%= f.grouped_collection_select :employee_id, Workgroup.order(:id), :employees, :group_name, :id, :employee_full_name, :include_blank => true, :selected_key => current_user.employee.id %>

current_user.employee.id is = 5

Изучив HTML, пользователь, которого я хочу выбрать, имеет следующее:

<option value="5">John Jones</option>

ОБНОВЛЕНИЕ - спасибо Fenec.

Я использовал следующее:

<% options = option_groups_from_collection_for_select(Workgroup.order(:id),
       :employees, :group_name, :id, :employee_full_name, current_user.employee.id) %>
<%= select(:employee_id, :employees, options, include_blank: true) %>

И это правильно отображается на экране. Но выбор не обновляет данные в записи.

Я изменил на это:

<%= f.select(:employee_id, :employees, options, include_blank: true) %>

И получил undefined methodmerge'`

1 ответ

Решение

Это сработало:

<% options = option_groups_from_collection_for_select(Workgroup.order(:id),
       :employees, :group_name, :id, :employee_full_name, current_user.employee.id) %>

<%= f.select(:employee_id,  options, include_blank: true) %>
Другие вопросы по тегам