form_tag 未触发 Rails 中的补丁调用

问题描述 投票:0回答:1

下面是更新不同学生状态的代码,但问题是在我对雕像进行了一些更改后,单击更新状态没有任何反应。

学生/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

请帮我解决这个问题

ruby-on-rails ruby forms
1个回答
0
投票

您的视图至少有一次无效,提交标签必须在表单内

<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>
    <%= submit_tag "Update Status" %>
  <% end %>
</table>
© www.soinside.com 2019 - 2024. All rights reserved.