【发布时间】:2013-12-10 14:34:20
【问题描述】:
我目前遇到更新列表问题。 我使用 Rails 和 AngularJS。
在 JS 方面,我使用 Angular $resource 功能插入 jQueryUI 以实现可排序功能,以读取、更新(并在第二步中删除和创建)已排序的文本块。
例如。
“1 - lorem ipsum”
“2 - 第二位置 lorem ipsum”
“3 - 第三个位置”
在 AngularJS 控制器中我有这个:
function DndCtrl($scope, $resource) {
var Feed = $resource('/users/'+ userId +'/test/:id', {id: '@id'}, {'update': {method:"PUT", isArray:true}});
$scope.tests = Feed.query(function() {
$scope.updateSortable = {
// jQueryUI methods
update: function(e, ui) {
// trigger after user ends dropping item
for (var i=0; i<$scope.tests.length; i++) {
var t = $scope.tests[i];
t.position = i+1;
t.$update();
}
},
placeholder: "t-hightlight",
axis: 'y'
};
});
} // end DnD
排序后的输出:
PUT http://demo.mytest.dev/users/1/test/1 401 (Unauthorized)
并在服务器日志中:
warning can't verify csrf
于是我在这个话题上找到了:Rails CSRF Protection + Angular.js: protect_from_forgery makes me to log out on POST HuangYuHei 的答案并尝试了一下。
然后控制台输出:
GET http://demo.mytest.dev/users/1/test 404 (Not Found)
在服务器日志上:
Test Load (1.9ms) SELECT "tests".* FROM "tests" WHERE "tests"."id" = 2 LIMIT 1
Unpermitted parameters: id
我直接在rails控制台中测试了请求,它很好地返回了条目。
我做错了什么?我错过了 Rails 配置部分的内容吗?还是在 Angular 部分?
【问题讨论】:
标签: ruby-on-rails jquery-ui angularjs