2013-05-17 2 views
2

2 개의 네임 스페이스, api 및 v1이 있습니다.리소스로 계정과 사용자가 있습니다.매개 변수로 시작하는 네임 스페이스의 리소스 라우팅 리소스

/API/V1/: ACCOUNT_ID/: 자원/: ID

예 : /API/V1/1/사용자/내 모든 자원에 대해 다음과 같이

나는 경로를 매핑 할 2

예 1은 계정 ID를 나타내고 2는 사용자 ID를 나타냅니다.

어떻게해야합니까?

+0

에 오신 것을 환영합니다 스택 오버플로 할 수 있습니다. 귀하의 질문은 약간 모호하며, 귀하가 무엇을 요구하는지 이해하는 것은 어렵습니다. 더 이해하기 쉽게 질문을 편집 하시길 바랍니다. –

+0

뭐라고 요? 나는 꽤 똑바로 생각한다. 나는 예를 들었다. 당신이 이해하지 못하는 것은 무엇입니까? –

+0

죄송합니다. 포맷팅의 부족으로 인해 총이 조금씩 뛰었습니다. –

답변

4

각 컨트롤러에 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 
+0

문제가 발생하지만 이제는 초기화되지 않은 상수 인 UsersController가 발생합니다. 아이디어는 디렉토리 structre 위해이었다 : 응용 프로그램 - WS - V1 - users_controller.rb 그런 식으로 작동하지 않습니다. 범위 대신 네임 스페이스를 사용할 수있는 방법이 있습니까? Noob 질문입니다. 죄송합니다. 방금 레일로 시작 했으므로 클라이언트가이 작업을하도록 강요합니다. –

+0

... to : 'api/v1/users'를 추가해야했습니다. –

+0

답변이 업데이트되었습니다. 또한 저는 당신의 모범을 보러 가고 있습니다. 'resources : users'를 실제로 가지고있는 리소스로 대체해야합니다. – Substantial

관련 문제