2012-10-02 306 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到结束。