AngularJS使用Devise与Ruby on Rails集成

时间:2015-04-07 21:56:28

标签: angularjs ruby-on-rails-4 devise

我们正在使用AngularJS和Rails4,当使用自定义方法更新用户记录时,我收到错误:

以下是控制器动作的定义方式

myApp.controller('AccountCtrl',..........

注册新用户可以正常使用

$scope.register = function(){
  Auth.register($scope.user).then(function(){
    $state.go('account');
  });
}

更新用户不起作用

$scope.update = function(){
  $scope.user = User.get({id: $stateParams.id});
  $id = $scope.user.id;
  User.update($scope.user);
}

错误消息 错误是路由"

中的#34; 422无法处理的错误

无法加载资源:服务器响应状态为422(不可处理实体)

有人知道导致Angular破坏请求的原因是什么吗?

1 个答案:

答案 0 :(得分:1)

您无法立即使用User.get返回的值。你应该在这样的回调中处理它:

$scope.update = function(){
  $scope.user = User.get({id: $stateParams.id}, function() {
    $id = $scope.user.id;
    User.update($scope.user);
  });
};

有更多示例in the documentation for $resource