Rails在命名空间中以参数开始路由资源

时间:2013-05-17 10:20:31

标签: ruby-on-rails

我有2个名称空间,api和v1 我有帐户和用户作为资源。

我想为我的所有资源映射路由如下:

/ API / V1 /:ACCOUNT_ID /:资源/:ID

即: / API / V1 / 1 /用户/ 2

在示例1中,代表帐户ID,2代表用户ID。

我如何做到这一点?

1 个答案:

答案 0 :(得分:5)

这取消了名称空间,这样您就不需要将API::V1::附加到每个控制器,或者隐藏子目录中的视图文件。以下使用普通的顶级控制器和视图:

scope '/api/v1/:id', :as => 'account' do
  resources :users
end

如果要保留所有命名空间结构内容,请执行以下操作:

namespace 'api' do
  namespace 'v1' do
    scope '/:id', :as => 'account' do
      resources :users
    end
  end
end