2012-10-04 5 views
0

Rails 3.2.8로 작성된 전자 상거래 웹 사이트에서 음악 이벤트 티켓을 판매하고 있습니다. 지금까지 나는 응용 프로그램에서 간단한 편안하고 경로를 사용하고했습니다동적 접두어로 RESTful 경로 생성

/ => default route: /events 
/events 
/events/1 
/events/1/new 
/events/2 
... 

같은 장소에서 발생하지만, 지금이 곳이있을거야에서의이 마라 카나 ""모 룸비 "하고 말할 수 있도록 사용되는 모든 이벤트 ". 장소은 응용 프로그램의 모델이며 이벤트 간의 매우 중요한 차이입니다. 그래서 나는 장소가 경로의 일부를 이름을 확인하고이 같은 경로를 가지고 싶습니다

/ => default route: page to choose place 
/morumbi => same as /morumbi/events 
/morumbi/events/1 
/morumbi/events/1/new 
/maracana => same as /maracana/events 
/maracana/events/2 
... 

나는 #match 방법을 사용하여, 이미 생성 된 경로의 좋은 번호를 가지고 그렇게하는 방법을 알고 있지만 훨씬 더 maintainable #resources 방법으로, 나는 그들을 유지하고 싶습니다.

#match을 사용하지 않는 해결책을 알고 있습니까?

scope path: ':place_name', as: 'place' do 
    resources :events 
    ... 
end 

그래서 GET /morumbi/events/1 매개 변수 id: '1'place_name: 'morumbi'EventsController#show를 호출합니다 :

답변

3

당신은 #scope 방법을 사용해야합니다.