2015-02-28 2 views
5

Я пытаюсь перенаправить мой корень www.example-app.com в www.example-app.com/app/dashboard с помощью routes.rb. На данный момент я делаю это так:Перенаправить корень на именованный маршрут в рельсах 4

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

Но хотел бы сделать это с использованием имени маршрута, например:

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

Но когда я положил, что в маршрутах:

root to: redirect(account_dashboard_url) 

... конечно, он не работает, как я могу это сделать?

ответ

3

Вы не можете сделать это непосредственно в 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 
+0

Извините за мой поздний ответ, не успел на самом деле. Это выглядит немного странно, что нет «официального» способа сделать это, надо сказать. Но в любом случае ваш ответ решает мою проблему. Так спасибо много :) – plunntic

0

Пожалуйста, обратите внимание, что по состоянию на Rails 5, пересылают из маршрутов возможно.

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

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

Эта страница довольно высоко на некоторых Google-ключевых слов, и это может ввести в заблуждение.

+0

Этот метод показан в самом вопросе. Речь идет о названных маршрутах, которые, как я полагаю, не поддерживаются «переадресацией» в Rails 5 или 5.1. – dbenton

Смежные вопросы