Rails路线:重定向整个资源

Eli*_*ise 5 redirect ruby-on-rails rails-routing

我知道有关重定向特定路由的信息:

put 'users/:user_id', to: redirect('/api/v1/users/:user_id')
Run Code Online (Sandbox Code Playgroud)

如何将重定向应用于由生成的所有路由resources?寻找类似的东西

resources :users, to: redirect('/api/v1')
Run Code Online (Sandbox Code Playgroud)

我可以使用match实现一种解决方法,但这有点笨拙:

match 'users/*path', to: redirect('/api/v1/users/%{path}'), via: [:GET, :POST, :PUT, :DELETE]
Run Code Online (Sandbox Code Playgroud)

Vla*_*lad -1

也许尝试这样的事情:

namespace :api, defaults: { format: :json } do
  namespace :v1 do
    resources :users
  end
end
Run Code Online (Sandbox Code Playgroud)

那会给你

      api_v1_users GET       /api/v1/users(.:format)                      api/v1/users#index {:format=>:json}
                   POST      /api/v1/users(.:format)                      api/v1/users#create {:format=>:json}
   new_api_v1_user GET       /api/v1/users/new(.:format)                  api/v1/users#new {:format=>:json}
  edit_api_v1_user GET       /api/v1/users/:id/edit(.:format)             api/v1/users#edit {:format=>:json}
       api_v1_user GET       /api/v1/users/:id(.:format)                  api/v1/users#show {:format=>:json}
                   PATCH     /api/v1/users/:id(.:format)                  api/v1/users#update {:format=>:json}
                   PUT       /api/v1/users/:id(.:format)                  api/v1/users#update {:format=>:json}
                   DELETE    /api/v1/users/:id(.:format)                  api/v1/users#destroy {:format=>:json}
Run Code Online (Sandbox Code Playgroud)

编辑:

namespace :api, path: nil, defaults: { format: :json } do
  namespace :v1, path: nil do
    resources :users
  end
end
Run Code Online (Sandbox Code Playgroud)

那会给你

           api_v1_users GET       /users(.:format)                             api/v1/users#index {:format=>:json}
                        POST      /users(.:format)                             api/v1/users#create {:format=>:json}
        new_api_v1_user GET       /users/new(.:format)                         api/v1/users#new {:format=>:json}
       edit_api_v1_user GET       /users/:id/edit(.:format)                    api/v1/users#edit {:format=>:json}
            api_v1_user GET       /users/:id(.:format)                         api/v1/users#show {:format=>:json}
                        PATCH     /users/:id(.:format)                         api/v1/users#update {:format=>:json}
                        PUT       /users/:id(.:format)                         api/v1/users#update {:format=>:json}
                        DELETE    /users/:id(.:format)                         api/v1/users#destroy {:format=>:json}
Run Code Online (Sandbox Code Playgroud)