【问题标题】:Ruby on Rails routing for variable controller用于变量控制器的 Ruby on Rails 路由
【发布时间】:2012-10-02 19:00:34
【问题描述】:

我有一个希望能够重定向到的 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"}

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

非常感谢。

【问题讨论】:

    标签: ruby-on-rails url variables routing match


    【解决方案1】:

    Route 需要 2 个参数,第一个是:account,第二个是:page,我认为您只是传递:page。我会将 :as => '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 添加到末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      相关资源
      最近更新 更多