2012-10-02 555 views
0

我有一個我希望能夠重定向到的URL。Ruby on Rails路由可變控制器

類似的東西來:

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

我有一個比賽中的routes.rb爲:

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

我有重定向代碼:

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

然而這與出現路由錯誤:

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

我知道我所做的是錯誤的,但我該如何解決這個問題?

非常感謝。

回答

2

路由期待2個參數,第一個是:account,第二個是:page,我認爲你只是傳遞: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 

查看確切的名稱,然後添加_path到結束。