AJAX调用没有设置我的destroy方法

时间:2014-09-22 02:45:13

标签: jquery ruby-on-rails ajax

正在修补我的Rails应用程序,遗憾地破坏了我的删除项功能。不确定是什么让它误入歧途,但它不再在ajax调用数据库时获得有关被点击项目的数据。

在我的控制台中出现此错误 DELETE http://localhost:3000/bands/favorite/29 404 (Not Found)

这是我的Rails服务器:

Started DELETE "/bands/favorite/29" for 127.0.0.1 at 2014-09-21 19:15:19 -0700

ActionController::RoutingError (No route matches [DELETE] "/bands/favorite/29"):

这是我的jQuery删除函数,带有ajax调用:

  $('.remove_favorite').click(function(event){

        var id = $(this).attr("data-id");
        $.ajax({
          url: "/bands/favorite/"+id,
          method: "DELETE",
          data: id
        }).done(function(){

        $('.list-item[data-id='+ id +']').fadeOut(1000, function(e){
          $(this).remove();
          }); 
        }) 
      }); 

并将其作为我删除方法的路径:

  get "bands/favorite/:id" => "bands#destroy"

我在控制器中的destroy方法:

  def destroy
    Band.delete(params[:id])
    render nothing: true, status: 200
  end

我想知道是否有人可以帮我弄清楚为什么路径上没有返回JSON数据:/bands/favorites/29因此无法删除。

1 个答案:

答案 0 :(得分:0)

根据服务器错误的建议,404的原因是您的路线。而不是

get "bands/favorite/:id" => "bands#destroy"

尝试:

delete "bands/favorite/:id" => "bands#destroy"