在ajax调用之后rails如何删除表行以删除它?

Mic*_*ant 8 ruby ajax ruby-on-rails ruby-on-rails-3

如果我有链接 -

= link_to 'ajaX', 
  ajax_delete_link_path(link), 
  data: { :confirm => 'Are you sure?', :remote => true } 
Run Code Online (Sandbox Code Playgroud)

有路线:

get 'ajax_delete_link/:id', to: 'links#ajax_delete_link', as: :ajax_delete_link
Run Code Online (Sandbox Code Playgroud)

和一个链接控制器:

def ajax_delete_link
  @link = Link.find(params[:id])
  @link.destroy
  respond_to do |format|
    format.js
  end 
end 
Run Code Online (Sandbox Code Playgroud)

ajax_delete_link.js.erb

var element = document.getElementById("id");
element.parentNode.removeChild(element);
# This is the part that doesn't work. Not sure how to access the id
Run Code Online (Sandbox Code Playgroud)

控制器删除数据库记录但不更新页面.我试图删除包含a的td的父表行

html就是这样

        ...
        <td>
          <a href="/ajax_delete_link/396" data-confirm="Are you sure?" data-remote="true">ajaX</a>
        </td>
Run Code Online (Sandbox Code Playgroud)

Jad*_*ugh 0

正如您所看到的,发出 ajax 请求会更改数据库,但实际上不会更新页面。您需要为 ajax 提供一个回调来操作 DOM 以删除您想要删除的表行。

当您使用 时,Rails 会触发自定义事件(请查看https://github.com/rails/jquery-ujs/wiki/ajax:remote => true ) ,您可以使用它附加回调。