将root重定向到rails 4中的命名路由

时间:2015-02-28 16:46:47

标签: redirect ruby-on-rails-4 routes

我正在尝试使用www.example-app.comwww.example-app.com/app/dashboard根重定向到routes.rb。目前我正是这样做的:

root to: redirect('/app/dashboard')

但是想使用命名路由来做,例如:

get 'app/dashboard' => 'accounts#dashboard', as: :account_dashboard

但是当我把它放在路线中时:

root to: redirect(account_dashboard_url)

...当然它不起作用,我该怎么办?

2 个答案:

答案 0 :(得分:4)

你不能直接在routes.rb中执行此操作(截至目前为止--Rails 4.2),但有一些方法可以使它工作。最简单的IMO是在应用程序控制器中创建一个方法来进行重定向。

# routes.rb

root to: 'application#redirect_to_account_dashboard'

# application_controller.rb

def redirect_to_account_dashboard
  redirect_to account_dashboard_url
end

答案 1 :(得分:0)

请注意,从 Rails 5 开始,可以从路线重定向。

match "*", to: redirect('/something-else'), via: :all

http://guides.rubyonrails.org/routing.html#redirection

此页面对某些Google关键字非常高,这可能会产生误导。