无法使用Ajax删除Rails中的对象

时间:2014-04-21 19:05:03

标签: jquery ruby-on-rails ajax forms ruby-on-rails-4

Noob在这里尝试在Rails 4中创建一个简单的注释提交和删除应用程序。我正在使用Ajax提交/删除,但无法弄清楚为什么我的对象不会删除。

我的控制器包含以下删除方法:

def destroy
    Note.find(params[:id]).destroy
    render :json => "Note deleted!"
end

我的“创建”方法如下:

def create
    note = Note.create(title: note_params[:title], description: "click to add description")
    render :json => note
end

在我的application.js中,我使用Ajax提交,然后同时创建一个“删除”按钮:

$(document).ready(function(){
$("form").submit(function(){
  $.post(
    $(this).attr('action'),
    $(this).serialize(),
    function(data){
      console.log('Data Received from the Ajax call', data);
      //put additional codes here to update html, etc.
      //for example things like
      $('.all-notes').append(data.title);
      $('.all-notes').append('<input type="button" class="ajay" value="Delete">')
    },
    "json"
  );
  return false;
});

然而,当我提交一个笔记时,我会看到一个带有相关删除按钮的笔记,但实际上点击该按钮什么都不做。这是我在application.js文件中用于删除的Ajax代码:

  $(".ajay").submit(function(){
  $.post(
    $(this).attr('action'),
    $(this).serialize(),
    function(data){
      console.log('Data Received from the Ajax call', data);
      //put additional codes here to update html, etc.
      //for example things like
      $('.all-notes').remove(data.title);
    },
    "json"
  );
  return false;
});

有什么想法?非常感谢!

-A

1 个答案:

答案 0 :(得分:0)

你应该尝试这样的事情:

$('.ajay').live('click', function(){
    $.ajax({
        url: '/note/id',
        type: 'DELETE',
        success: function(result) {
            // Do something with the result
        }
    });
});