ActionController :: RoutingError(没有路由匹配[DELETE]

时间:2015-08-26 07:59:41

标签: ruby-on-rails routing

我正在尝试使用angularJS和rails从我的数据库中删除记录,但是当删除操作触发时会显示错误。

在浏览器日志中显示

DELETE http://localhost:3000/movies.json/1 404 (Not Found)

在rails控制台中显示,

Started DELETE "/movies.json/1" for 127.0.0.1 at 2015-08-26 09:42:07 +0200

ActionController::RoutingError (No route matches [DELETE] "/movies.json/1"):

localhost:3000/movies.json可用,所以我不确定我是否错过了路线中的某些内容,或者我没有正确定位记录的ID。

在我的routes.rb中,我有,

resources :movies, only: [:create, :destroy, :index, :show]

这是AngularJS服务,

.factory('removeMovie', ['$http', function($http) {
  return {
    deleteMovie: function(movieId) {
    var _movieId =  parseInt(movieId);
    return $http.delete('/movies.json/'+_movieId);
  }
 };
}])

和AngularJS控制器,

$scope.deleteMovie = function(movie){
  removeMovie.deleteMovie(movie.id).then(function(sucessResponse){
    //success callback
  },function(errorResponse){
    //Error callback
  })
}

这是行动开始的模板,

%div{"ng-repeat" => "movie in movies"}
  {{ movie.id }}
  {{ movie.title }}
  %a{"ng-click" => "deleteMovie(movie)"}delete

虽然我很确定它不是AngularJS问题而是Rails问题。这很奇怪,因为我的电影资源中有destroy,但是错误表明还有nog路由匹配。

如果我从资源中删除:create,当我尝试创建新条目时,我会收到相同的错误(但是然后是POST而不是删除)。

0 个答案:

没有答案