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 method
merge'`
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) %>