3

Rails 4 API の上に永続性を持たせるために Restangular を使用する AngularJS アプリがあります。更新が機能しないという問題が発生しました。

の私のコード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".

どんな助けでも大歓迎です。

4

1 に答える 1

5

セットアップをもう少し調べてみて、なんとかそれを理解することができました。すべての部品が必要かどうかを実際に調べずに、見つけたチュートリアルから Restangular の構成をコピーしました。

私の中でconfig()

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

これは、API のフィールドと一致せず、問題の原因でした。私はそれを削除し、設定だけを残して、setBaseUrl再び機能し始めました。

願わくば、これが私と同じ失明に苦しんでいる他の誰かを助けることを願っています.

于 2013-10-30T18:44:08.457 に答える