2011-08-14 3 views
0

본질적으로 이러한 URL을 가질 수 있기를 원합니다.레일스 3의 자원에 대해 생성 된 경로를 수정하는 방법

/articles 
/articles/show/(article id) 
/articles/new 
/articles/edit/(article id) 

... 등. 나는 resources : articles routes를 사용하기를 원하지만 이것은 다른 경로를 생성합니다.

/articles 
/articles/(article id)/show 
/articles/new 
/articles/(article id)/edit/ 

는 사실이 내가 레이크 노선

articles  GET /articles(.:format)   {:action=>"index", :controller=>"articles"} 
articles  POST /articles(.:format)   {:action=>"create", :controller=>"articles"} 
new_article GET /articles/new(.:format)  {:action=>"new", :controller=>"articles"} 
edit_article GET /articles/:id/edit(.:format) {:action=>"edit", :controller=>"articles"} 
article  GET /articles/:id(.:format)  {:action=>"show", :controller=>"articles"} 
article  PUT /articles/:id(.:format)  {:action=>"update", :controller=>"articles"} 
article  DELETE /articles/:id(.:format)  {:action=>"destroy", :controller=>"articles"} 

내가 원하는 동작을 얻을이 사용을 피하려고를 실행할 때 내가 무엇을 얻을 수 있습니다.

match ':controller(/:action(/:id(.:format)))' 

위의 경로에 따라 앱이 계속 응답하기 때문입니다. 경로를 변경하여 원하는 동작을 얻을 수있는 간단한 방법이 있습니까? 그리고 만약 그렇다면 어떻게? 그렇지 않다면 앱이 원하는 URL 구조에만 응답하도록해야합니까?

+0

지금 나는 단지'resources : articles'을 가지고있다. 그러나 컨트롤러에 대한 생성기는 내가 주석 처리 한이 유형의'get "articles/index"를 추가했다. –

답변

3

그냥 당신이 그것을 설정하는 데 필요한 특정 컨트롤러 방법에 대한 일치 라우팅 설정 : 당신은 변경할 필요가 없습니다

match 'articles/show/:id' => 'articles#show', :via => :get, :as => 'article' 
#etc etc ... 

그리고 다음 사람을위한 자원을 포함

resources :articles, :only => [:index, :new] 
관련 문제