form_tag がレールでパッチ呼び出しをトリガーしない
概要
以下は、さまざまな生徒のステータスを更新するコードですが、問題は、彫像にいくつかの変更を加えた後、ステータスの更新をクリックしても何も起こらないことです。
students/manage_users.html.erb
<div class="col-sm-9 col-xs-12">
<div class="content" role="main" id="main-content">
<article>
<div>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th><%= link_to "Primary Student", :sort => "student_1_firstname" %></th>
<th>Admin Status</th>
<th>Superadmin Status</th>
</tr>
</thead>
<%= form_tag update_status_path, :method => 'patch' do %>
<tbody>
<% @students.each do |student| %>
<tr>
<td><%= link_to student.email,student_path(student) %></td>
<td><%= check_box_tag "students[#{student.id}][admin]", true, student.admin, class: 'status', data: {id: student.id, type: 'admin'} %></td>
<td><%= check_box_tag "students[#{student.id}][superadmin]", true, student.superadmin, class: 'status', data: {id: student.id, type: 'superadmin'} %></td>
</tr>
<% end %>
</tbody>
</table>
<%= submit_tag "Update Status" %>
<% end %>
</div>
<div class="clearfix"></div>
</div>
</article>
</div>
<!-- .content -->
</div>
<!-- END .main_column_css -->
ルート.rb
patch 'main-admin/manage_users', to: 'students#update_status', as: 'update_status'
コントローラ
class StudentsController < ApplicationController
def update_status
@students = Student.all
students = params[:students]
@students.each do |student|
student.update_attributes(admin: students[student.id.to_s] && students[student.id.to_s]['admin'] ? true : false, superadmin: students[student.id.to_s] && students[student.id.to_s]['superadmin'] ? true : false)
end
end
end
これを修正するのを手伝ってください
解決策
HTML が無効です。
MDN によると、