私の質問の文脈から始めましょう。私はオフィスのグループを持っており、それぞれにレビュアーが関連付けられています。レビュー担当者は、1 つのオフィスにのみ関連付けることができます。2 つの選択ボックスを作成したいと考えています。1 つは表示しているオフィスに関連付けられているすべてのレビュー担当者を一覧表示し、もう 1 つは利用可能なすべてのレビュー担当者を一覧表示します (基本的に、このオフィスにまだ割り当てられていないすべてのレビュー担当者です)。
現在のレビュアーのリストボックスの目標は、選択されたときにオフィスを nil に設定することです。利用可能なレビュー担当者リストボックスの目的は、選択されたときにオフィスをこのオフィスの ID に設定することです。セレクトボックスを使ってレビュアーのoffice_idだけを変更する方法がわかりません。
コード的には、これまでのところ次のとおりです。
office_controller.rb
def edit
@office = Group.find params[:id] if params[:id]
@current_reviewers = Reviewer.find_all_by_group_id(@office.id)
@available_reviewers = Reviewer.where('group_id <> ?',[@office.id])
end
def update
?
end
オフィス/edit.html.erb
<% form_for(@office, :url => {:controller => :office, :action => :update, :id => @office.id}, :html => {}) do |f| %>
...
<%= select_tag 'removedReviewers', options_from_collection_for_select(@current_reviewers, "id", "display_name"), :multiple => true %>
<%= select_tag 'chosenReviewers', options_from_collection_for_select(@available_reviewers, "id", "display_name"), :multiple => true %>
...
<% end %>
どんな提案でも大歓迎です。ありがとう!