2016-06-06 1 views
3

내가 아는 전체 리소스를 리디렉션 :는 경로를 레일 : 특정 경로를 재 지정에 대해

put 'users/:user_id', to: redirect('/api/v1/users/:user_id') 

가 어떻게 resources에 의해 생성 된 모든 경로에 대한 리디렉션을 적용 할 것인가? 내가 일치를 사용하여 해결 방법을 얻을 수 있습니다

resources :users, to: redirect('/api/v1') 

같은 것을 찾고, 그러나 투박한 약간의 :

match 'users/*path', to: redirect('/api/v1/users/%{path}'), via: [:GET, :POST, :PUT, :DELETE] 
+1

가능한 중복을 줄 것이다 (http://stackoverflow.com/questions/25293107/how-to- [만들려면 자원 레일에서 다른 컨트롤러로 리디렉션] make-resources-redirect-to-another-controller-in-rails) –

+1

이것은 중복되지 않습니다. – wiznaibus

답변

-1

어쩌면 이런 일을하려고하는 것은 :

namespace :api, defaults: { format: :json } do 
    namespace :v1 do 
    resources :users 
    end 
end 

그것은 당신에게 줄 것이다

 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} 

편집 :

namespace :api, path: nil, defaults: { format: :json } do 
    namespace :v1, path: nil do 
    resources :users 
    end 
end 

즉, 당신의

  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} 
+0

고마워,하지만 접두사가없는 경로 ('/ users')가 레거시 클라이언트로 인해 기능 할 필요가있다. 리디렉션 만하면됩니다. – Elise

+0

@Elise 내 편집보기 – Vlad