私のデータベースには、多対多のリレーションシップを持つ 2 つのテーブルがあり、そのためリレーションシップ テーブルを作成しました。
Projects
Users
Project_users <-- members of a project
私は、すべてのプロジェクト フィールドを含むフォームを含むプロジェクトを編集するためのビューに取り組んでおり、プロジェクトのメンバーのためにチェックボックスをレンダリングします。これは機能しますが、以下のコードでは、プロジェクトのメンバーではないユーザーであっても、すべてのチェックボックスがチェックされます。
では、プロジェクトの現在のメンバーのチェックボックスのみがチェックされるように、コードをどのように変更すればよいでしょうか?
プロジェクト ビューの編集:
<%= form_for @project do |f| %>
...
the rest of the form
...
<div class="checkbox">
<% @members.each do |user| %>
<%= check_box_tag "project[members][]", user.id, '1', :id => "user_#{user.id}" %>
<%= label_tag "user_#{user.id}", user.first_name + ' ' + user.last_name, :class => "checkbox" %>
<% end %>
</div>
...
the rest of the form
...
<% end %>
プロジェクト コントローラー:
...
def edit
@project = Project.find(params[:id])
@members = @project.users
end
...