以下は、現在のユーザーのプライマリ ワークグループをドロップダウンで選択する場合に機能します。
<%= 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] %>
更新1
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
= 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) %>
そして、それは画面に正しく表示されます。ただし、select はレコード内のデータを更新しません。
私はこれに変更しました:
<%= f.select(:employee_id, :employees, options, include_blank: true) %>
そしてマージしましたundefined method
'`