Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 资源URL的API版本_Ruby On Rails_Api_Routing - Fatal编程技术网

Ruby on rails 资源URL的API版本

Ruby on rails 资源URL的API版本,ruby-on-rails,api,routing,Ruby On Rails,Api,Routing,我有这些API的路线: Fuu::Application.routes.draw do scope(:module => 'api', :defaults => {:format => 'json'}) do namespace('v1') do get 'welcome' => 'welcomes#index' end end end 如你所见,有一个v1模块。但我希望将1作为版本号,以便获得如下URL: https://api.f

我有这些API的路线:

Fuu::Application.routes.draw do
  scope(:module => 'api', :defaults => {:format => 'json'}) do
    namespace('v1') do
      get 'welcome' => 'welcomes#index'
    end
  end
end
如你所见,有一个v1模块。但我希望将1作为版本号,以便获得如下URL:

https://api.fuu.com/:version/direct_messages/sent.format
…其中版本仅为1

我尝试使用名称空间“1”,但这是不可能的,因为模块不能是整数


我们如何做到这一点?

只需将其更改为作用域,而不是名称空间:

Fuu::Application.routes.draw do
  scope(:module => 'api', :defaults => {:format => 'json'}) do
    # API Version 1
    scope('1', :module => 'v1') do
      get 'welcome' => 'welcomes#index'
    end
  end
end  

就我个人而言,我喜欢您第一种在v1中为路由/模块命名的方法,因为它可以更好地组织事情。

只需将其更改为作用域,而不是名称空间:

Fuu::Application.routes.draw do
  scope(:module => 'api', :defaults => {:format => 'json'}) do
    # API Version 1
    scope('1', :module => 'v1') do
      get 'welcome' => 'welcomes#index'
    end
  end
end  

就我个人而言,我喜欢您第一次在v1中命名路由/模块的方法,因为它可以使事情组织得更好。

谢谢@IWASROBED。我想我要用作用域'1',:module=>v1'。。。照你说的做。真高兴听到这个!如果我的答案有帮助,请勾选旁边的复选标记以结束问题。请忘记这一点;很抱歉谢谢@Iwasrobed。我想我要用作用域'1',:module=>v1'。。。照你说的做。真高兴听到这个!如果我的答案有帮助,请勾选旁边的复选标记以结束问题。请忘记这一点;很抱歉