私は学生のテーブルを表示していて、各行にその学生に関する情報を変更するために使用できるフォーム要素が必要です。私が現在持っているもの(下に示す)は、:manual_choice
と:student_id
が行ごとに一意のフォームフィールドではないため、テーブルの最後の生徒にしか動作しません。エリクサーリスト内でのフォーム入力の理解
どのように私はフォームの提出時にmanual_choiceが選択されたかを更新できるように、すべての生徒がこのリストの理解度を表の各行に固有のフォームフィールドを生成するようにしますか?
<%= form_for @changeset, assignments_path(@conn, :manual_assign), fn f -> %>
<table id="students" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>Student Name</th>
<th>Assigned Project</th>
<th>Override Assignment</th>
</tr>
</thead>
<tbody>
<%= for student <- @all_students do %>
<tr>
<td><%= student.student_name %></td>
<td><%= student.assigned_project %></td>
<td class="text-right">
<div class="form-group">
<%= select f, :manual_choice, @projects, class: "form-control", id: "manual_choice" %>
<%= text_input f, :student_id, class: "form-control", value: student.id, style: "display:none" %>
</div>
</td>
</tr>
<% end %>
</tbody>
</table>
<% end %>
なぜ2つの入力(selectとtext_input)の周りに 'form_for'を置かないのですか?あなたはページ上に複数のフォームを置くことができ、送信するフォームはそのフォームの値だけを送信します。 – Dogbert
これはうまくいく可能性があります。次に、各行に送信ボタンが必要ですか? – Forerunner117
はい。一度に複数の生徒を変更できるようにしたいですか? – Dogbert