我有一个使用Restangular的AngularJS App在Rails 4 API之上进行持久化。我的更新无法正常工作,我遇到了问题。
routeProvider
中的代码:
when('/course/edit/:courseId', {
controller: 'CourseEdit',
templateUrl: '/assets/templates/course/form.html',
resolve: {
course: function(Restangular, $route) {
return Restangular.one('courses', $route.current.params.courseId).get();
}
}
})
我的控制器功能:
function CourseEdit($scope, $location, course) {
$scope.course = course;
$scope.save = function() {
$scope.course.put().then(function() {
$location.path('/course/view/' + $scope.course.id);
});
};
}
PUT的请求是http://mysite.com/courses而不是http://mysite.com/courses/id
rails抛出的错误是'No route matches [PUT] "/courses"
。
非常感谢任何帮助。
答案 0 :(得分:5)
我设法了解了一下我的设置。我从我找到的教程中复制了一些Restangular的配置,而没有真正检查所有部分是否都是必要的。
在我的config()
RestangularProvider.setRestangularFields({
id: '_id.$oid'
});
这与我的API在我的API中不匹配,并且是我遇到的问题的罪魁祸首。我最终删除了它,只留下setBaseUrl
的配置,它又开始工作了。
希望这能帮助其他人摆脱与我同样失明的困境。