2011-05-11 5 views
3

'포털'이라는 네임 스페이스 컨트롤러를 갖고 싶습니다.레일 3 라우팅 및 네임 스페이스

은 회사 및 제품과 같은 중첩 된 리소스입니다.

내가 좋아하는 루트 싶습니다

/portal/:company_id/product/:id 내가

/portal/company/:company_id/product/:id 작동시킬 수

작동 할 수 있지만 URL

희망에서 '기업'을 제거하려는를 그 분명하다. 네임 스페이스가있는 모듈 포털이 필요합니다. 당신이 직접 밖으로 철자 경우

+0

'일치'를 사용하면 어떤 점이 좋습니까? – apneadiving

답변

7

나는 당신이 원하는 것을 얻기 위해 scope을 사용할 수 있다고 생각합니다. 아마도이 같은 :

portal_products GET /portal/:company_id/products(.:format)   {:action=>"index", :controller=>"portal/products"} 
        POST /portal/:company_id/products(.:format)   {:action=>"create", :controller=>"portal/products"} 
new_portal_product GET /portal/:company_id/products/new(.:format)  {:action=>"new", :controller=>"portal/products"} 
edit_portal_product GET /portal/:company_id/products/:id/edit(.:format) {:action=>"edit", :controller=>"portal/products"} 
    portal_product GET /portal/:company_id/products/:id(.:format)  {:action=>"show", :controller=>"portal/products"} 
        PUT /portal/:company_id/products/:id(.:format)  {:action=>"update", :controller=>"portal/products"} 
        DELETE /portal/:company_id/products/:id(.:format)  {:action=>"destroy", :controller=>"portal/products"} 

편집 : 대신 자원의 실수로 사용되는 자원은 다음 경로를 생성합니다

namespace "portal" do 
    scope ":company_id" do 
    resources :products 
    end 
end 

. 이제 해결되었습니다.

+0

완벽! 고맙습니다 – robzolkos

0

이 같은, 당신이 원하는 거의 무엇이든에 경로를 사용자 정의 할 수 있습니다

match '/portal/:company_id/product/:id', :to => 'companies_products#show' 

:to 부분은 사용하는 컨트롤러와 동작을 지정, 당신이 무엇을 일치해야 뭔가를 이제 당신의 노선. 그것이 무엇인지 확실하지 않다면, rake routes은 구체적인 해석을 말할 것입니다.