我目前正在为RoR上的应用程序开发API
作为一个例子,我创建了一些XML,加载了创建对象所需的所有信息,让我们说一个Person,并使用Curl我将它提交给我的应用程序
我能够从控制器中调用我想要的创建操作,并且正确传递对象的哈希参数
但是现在我需要应用不同的行为,如果请求是否与XML有关,困扰我的是控制器request.format给出的原因*/*.
有线索吗?
curl -v -H "Content-Type: application/xml; charset=utf-8" --data-ascii @client.xml http://foo.com:3000/clients?api_key=xxx
def create
logger.debug request.format # produces "*/*"
if request.format.xml?
# never gets here
end
end
Run Code Online (Sandbox Code Playgroud) 在 Rails 中,您可以为一组路由(在命名空间内)指定默认值,如下所示:
Rails.application.routes.draw do
# Other routes
namespace :api, defaults: { format: :json } do
resources :users
end
end
Run Code Online (Sandbox Code Playgroud)
如何将这样的默认值应用于应用程序中的所有路由?