我在 Rails 应用程序中使用 Devise 进行用户身份验证。我尝试在应用程序中使用 AngularJS 而不是默认的 rails 脚手架。问题是当我添加 before_filter :authenticate_user!在控制器中然后AngularJS调用更新/保存和删除资源不起作用说未经授权的访问(401)。这是一些代码:
资源:
@app.factory "employeesDB", ($resource) ->
$resource("/employees/:id", {id: "@id"}, {update: {method: "PUT"}},
{destroy: {method: "DELETE"}}
)
保存动作:
$scope.saveEmpl = ->
$scope.em = new Object if !$scope.em
employeesDB.save({}, $scope.em, (resource) ->
$scope.employees.push(resource)
, (response) ->
console.log("Failed")
)
$scope.em 是包含记录数据的对象,它使用 ng-model 绑定到 angular。
如果我删除 before_filter :authenticate_user,一切都会完美!从控制器
class EmployeesController < ApplicationController
#before_filter :authenticate_user!
仅当我尝试保存/更新/删除记录时才会出现问题,只需阅读它就可以了。
有任何想法吗??在使用 Angular 和 Devise 时,我应该遵循任何特定的指导方针吗?我是 rails 和 angularJS 的新手,因此将不胜感激详细的解释!谢谢