2012-10-02 4 views
0

리다이렉트 할 수있는 URL이 있습니다.가변 컨트롤러 용 Ruby on Rails 라우팅

뭔가 비슷한에 : 나는 리디렉션이

match ':account/admin/:page' => "admin#index" 

코드 :

redirect_to :controller => account.username, :action=>"admin", :page=>"index" 

이를, 그러나 함께 제공

"http://localhost:3000/username/admin/page".

으로 나는 routes.rb에 일치하는이 라우팅 오류 :

No route matches {:action=>"admin", :controller=>"sdunn", :page=>"index"} 

내가 한 일이 잘못되었다는 것을 알고 있지만 어떻게 해결할 수 있습니까?

감사합니다.

답변

2

Route는 두 개의 매개 변수가 필요합니다. 첫 번째 매개 변수는 다음과 같습니다. 계정, 두 번째 : 페이지, 나는 여러분이 지나가고 있다고 생각합니다 : page. => 'some_name'과 같은 경로에 다음 _path 사용 : 내가 추가 할

routes.rb를

match ':account/admin/:page' => "admin#index", :as => 'my_route' 

컨트롤러 :

redirect_to my_route_path(@user, @page) 

my_route_path 뭔가 다른 정확한에 따라 수 경로 파일이므로 정확한 이름을 보려면 _ 경로를 끝에 추가 한 후

rake routes | grep my_route 

을 사용하십시오.