我正在为我的Rails应用程序发布一个API,我正在尽可能地保持良好和RESTful,同时保持现实。我知道Flash和其他一些客户在GET和POST之外的任何事情都有问题,但我仍然希望为那些具有表现力的客户提供更多RESTful接口。
在我看来,最佳解决方案是设置正常的Rails RESTful路由,但也允许一个可选的查询字符串参数,如 method ,允许客户端使用POST但模仿另一个动词。
使用Rails路由有一种(简单)方法吗?其他人做类似的事情吗?
答案 0 :(得分:5)
是的,客户端可以指定标题X-Http-Method-Override
。如果标头的值为put
,则rails会将请求路由为PUT。
还有一个参数_method
,理论上应该可以工作,但在某些情况下它不会(如果你将它添加到POST请求的查询字符串中它不起作用)。有一些机架中间件可以修复这些情况:https://github.com/baroquebobcat/rack-methodoverride-with-params