2014-09-22 2 views
0

Выполнял мое приложение Rails и, к сожалению, сломал функцию удаления элементов. Не уверен, что заставило его сбиться с пути, но больше не получает данные о клике по элементу при вызове ajax в базу данных.AJAX call не настраивает мой метод уничтожения

Получение этой ошибки в моей консоли 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" 

Моя уничтожить метод в контроллере:

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

Интересно, если кто-нибудь может помочь мне понять, почему нет данных JSON не возвращается в пути: /bands/favorites/29 и, следовательно, не в состоянии удалить.

ответ

0

Как указано в ошибке сервера, причиной вашего 404 является ваш маршрут. Вместо

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

Try:

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

+0

ГЭТ было необходимо, но добавление удаления маршрута в файл работал. – PanicBus

Смежные вопросы