0

我有一个希望能够重定向到的 URL。

类似于:

“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"}

我知道我做错了什么,但我该如何解决这个问题?

非常感谢。

4

1 回答 1

2

Route 需要 2 个参数,第一个是:account,第二个是:page,我认为您只是传递:page。我会将 :as => 'some_name' 添加到您的路线中,然后使用 _path :

路线.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 添加到末尾。

于 2012-10-02T19:07:47.547 回答