0

我被 AngularJS - Rails 功能困住了。ngResource在createupdate上都发送 POST 请求。我为ngResource找到了这个问题的解决方案,但我想在 Rails 端解决它。我认为在不同的 URI 上执行的课程更新创建没有任何冲突

4

2 回答 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用于更新。

REST 中的 PUT 与 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 回答