我被 AngularJS - Rails 功能困住了。ngResource在create和update上都发送 POST 请求。我为ngResource找到了这个问题的解决方案,但我想在 Rails 端解决它。我认为在不同的 URI 上执行的课程更新和创建没有任何冲突
问问题
194 次
2 回答
1
您可以更改 Rails 资源以接受更新操作的 post 方法。但是,我不推荐这种方式,因为 RESTful 的更新方式最好是PUT
方法,而不是POST
正如您所说,您找到了在 ngResource 上发送 PUT 请求的方法。我强烈推荐这种方式。
来自http://blog.safaribooksonline.com/2013/05/16/angularjs-ngresource-tips-and-tricks/,ngResource 不支持 PUT 开箱即用,但它非常容易实现:
var res = $resource('/your/url/:id', {foo: 'bar'}, {'put': {method:
'PUT', params: {foo: 'baz'}, isArray: false}});
这是另一个关于它的讨论,我们最好不要再POST
用于更新。
于 2013-09-17T05:10:57.283 回答
0
Did you try overriding it in your routes.rb
like this? I never tried it with the standard actions, but it might just work for you:
resources :users do
post 'update', :on => :member
end
于 2013-09-17T04:19:21.117 回答