如何通过javascript触发rail的数据方法=“删除”

How to trigger rail's data-method="delete" via javascript

本文关键字:方法 删除 数据 何通过 javascript 触发 rail      更新时间:2023-09-26

我想做一个扩展,将代码注入特定站点,允许用户一次删除多个帖子,而不必一次手动删除一个帖子。

似乎触发删除的元素如下所示:

<a class="button delete link" rel="nofollow" data-method="delete" href="/relative-path">Yes</a>

现在我对rails一无所知,但是一旦我确定了所有这些元素,有没有办法通过javascript触发它们?

谢谢!

我创建了一个简单的表单,其中包含一个复选框,您可以像这样选择要删除的行

= simple_form_for :user, :url => delete_selected_path, :method => :delete do |f|
  %table
    %tr
      %td Select
      %td Name
    - users.each do |user|
      %tr
        %td= check_box_tag 'user_ids[]', user.id 
        %td= user.name
    %tr
      %td
      %td= f.button :submit, 'Delete Selected'

我还在我的控制器中创建了一个名为 delete_selected 的新我,看起来像

def delete_selected
  User.where(id: params[:user_ids]).delete_all
  redirect_to root_path
end

此方法的作用是找到所有user_ids,然后调用delete_all

我确实像这样创建了一个自定义路由

match "/pages_delete_selected" => "pages#delete_selected", :as => :delete_selected, via: :all

您可以将:all更改为:delete或其他任何内容以使其更具体

您可以在此处找到此示例的所有源代码 https://github.com/mzaragoza/sample_delete_multiple_records_at_once

以及即将推出的实时预览 https://sample-delete-multiple-records.herokuapp.com/