Я создаю функцию многократного удаления в моем приложении rails 6
.
Итак, вот шаги, которые я сделал.
- Создан метод
destroy_multiple
def destroy_multiple
Page.destroy(params[:page_ids])
redirect_to pages_path
end
Отредактировал мой
config->routes.rb
resources :pages do
collection do
delete 'destroy_multiple'
end
end
Установлено gem 'select_all-rails'
В мой app->javascript->application.js
я включил необходимые коды для выбора всех рельсов js:
require("@rails/ujs").start()
Require ("turbolinks"). start ()
require("@rails/activestorage").start()
require("channels")
require("select_all.js")
$(function() {
$("#selectAll").select_all();
});
import 'bootstrap'
import './stylesheets/application.scss'
Наконец, в свои представления я включил следующие коды:
<section>
<div class="container-fluid">
<!-- Page Header-->
<header>
<h1 class="h3 display">Pages</h1>
</header>
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-header">
<h4>List of Pages</h4>
</div>
<div class="card-body">
<div class="table-responsive">
<%= form_tag destroy_multiple_pages_path, method: :delete do %>
<table class="table">
<thead>
<tr>
<th data-sort-ignore="true"> <input type="checkbox" id="selectAll"/></th>
<th>Id</th>
<th>Title</th>
<th>Summary</th>
<th>Date Created</th>
<th colspan="3">Action</th>
</tr>
</thead>
<tbody>
<% @pages.each do |page| %>
<tr>
<td><%= check_box_tag "pages_ids[]", page.id, false, class: 'selectable' %> </td>
<td><input type="checkbox" value="false"> </td>
<td scope="row"><%= page.id %></td>
<td><%= page.title %></td>
<td><%= page.body.truncate(60) %></td>
<td> <%= page.created_at.strftime("%B %d, %Y") %> </td>
<td><%= link_to "Show", page_path(page)%></td>
<td><%= link_to "Edit", edit_page_path(page)%></td>
<td><%= link_to "Delete", page_path(page), method: :delete, data: { confirm: "Are you sure?" }%></td>
</tr>
<% end %>
</tbody>
</table>
<%= submit_tag "Delete Selected", class: 'btn btn-primary btn-xs' %>
<% end %>
</div>
</div>
</div>
</div>
Когда я запускаю это, он правильно отображает мои флажки.Однако, когда я нажимаю на флажок сверху, он не выбирает все, и после нажатия кнопки удаления я получаю эту ошибку:
Couldn't find Page without an ID
Есть идеи, что я делаю неправильно?