我正在尝试使用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而不是删除)。