2013-10-30 23 views
3

我有一個AngularJS應用程序使用Restangular在Rails 4 API之上進行持久化。我遇到了我的更新無法正常工作的問題。Restangular PUT沒有在請求中附加ID

我在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

像我預期它是,我似乎無法弄清楚爲什麼。

導致拋出的錯誤是'No route matches [PUT] "/courses"

任何幫助將不勝感激。

回答

5

我設法弄明白了我的設置了一些。我從我找到的教程中複製了一些Restangular的配置文件,但沒有真正檢查是否所有塊都是必需的。

在我config()

RestangularProvider.setRestangularFields({ 
    id: '_id.$oid' 
}); 

這不符合我的是什麼領域都在我的API,並且是我是有這個問題的罪魁禍首。我結束了刪除,只留下配置爲setBaseUrl,它又開始工作。

希望這會幫助別人誰是誰掙扎在我一樣的失明。