I'm currently stuck on an update list problem. I use Rails and AngularJS.
On JS side, I plugged jQueryUI for sortable feature with Angular $resource feature to read, update (and in second step, delete and create) a text block that is ordered.
eg.
"1 - lorem ipsum"
"2 - second position lorem ipsum"
"3 - the third position"
in AngularJS controller I have this :
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
OUTPUT after sorted element :
PUT http://demo.mytest.dev/users/1/test/1 401 (Unauthorized)
and in the server log :
warning can't verify csrf
So I found on this topic : Rails CSRF Protection + Angular.js: protect_from_forgery makes me to log out on POST the answer from HuangYuHei and tried it.
The console OUTPUT then :
GET http://demo.mytest.dev/users/1/test 404 (Not Found)
And on server log :
Test Load (1.9ms) SELECT "tests".* FROM "tests" WHERE "tests"."id" = 2 LIMIT 1
Unpermitted parameters: id
I tested directly the request in the rails console and it returned well the entry.
What I'm I doing wrong ? Did I miss something on Rails config part ? or on Angular part ?