その行でボタンがクリックされるたびに、その行のドロップダウンボックスのデータでテーブルのセルを更新しようとしています。次の図に示すように、各行にはドロップダウン ボックスとボタンがあります。
http://i.imgur.com/eVJumuk.png
ユーザーがドロップダウンボックスから値を選択して更新ボタンをクリックすると、その行の Room 列の値のみが更新されるように設定しようとしています。しかし、ボタンを機能させる方法さえ理解できず、誰かがこれを手伝ってくれるかどうか知りたいと思っていました.
これが私のコントローラーです:
def index
@students = Student.all
@first_floor = %w(1101 1102 1103 1104 1105)
@second_floor = %w(2101 2102 2103 2104)
@third_floor = %w(3101 3102 3103 3104)
@selected_room = params[:room]
respond_to do |format|
format.html # index.html.erb
format.json { render json: @students }
end
end
テーブルのビューの一部を次に示します。
<% @students.each do |student|%>
<tr>
<td><%= student.id %></td>
<td><%= student.n_number %></td>
<td><%= student.f_name %></td>
<td><%= student.l_name %></td>
<td><%= student.date_submit %></td>
<td><%= student.floor_pref %></td>
<td><%= @selected_room %></td>
<% form_tag do %>
<% if student.floor_pref == '1st' %>
<td><%= select_tag 'room', options_for_select(@first_floor.map { |value| [value,value]}, @selected_room) %></td>
<% end %>
<% if student.floor_pref == '2nd' %>
<td><%= select_tag 'room', options_for_select(@second_floor.map { |value| [value,value]}, @selected_room) %></td>
<% end %>
<% if student.floor_pref == '3rd' %>
<td><%= select_tag 'room', options_for_select(@third_floor.map { |value| [value,value]}, @selected_room) %></td>
<% end %>
<td><%= submit_tag 'Update' %></td>
<% end %>
<td><%= button_to 'Show', :controller => 'students', :action => 'preview', :id => student%></td>
<td><%= button_to 'Remove', student, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>