2016-12-08 2 views
1

Я использую Ruby, Rails 2.3 с 5. У меня есть это в моей конфигурации/routes.rb файлаКак перенаправить пользователя на страницу входа, если они посещают мой корневой URL?

прибудет '/ Войти', чтобы: 'сессии # нового'

корень '/' входа

, но при загрузке моего сервера, я получаю ошибку

Missing :controller key on routes definition, please check your routes. 

Я хочу, чтобы перенаправить пользователя на страницу входа в систему, если они посещают корневой URL. Как мне это сделать?

ответ

0

Для корневого пути установите его в действие # контроллера вместо строки, имеющейся на данный момент. Кажется, у вас есть на «сессии # новый»

+0

Если я изменю действие # контроллера, на которое указывает '/ login', мне также придется изменить свой корневой путь, правильно? Есть ли способ определить страницу входа в систему в одном месте и иметь в ней корневую точку? –

+0

вы знаете, что если вы хотите, чтобы root всегда являлся страницей входа в систему, вы можете добавить 'before_action: authenticate_user!' В свой контроллер приложений , тогда вы можете пойти и установить свой корень на все, что захотите. таким образом, после входа в систему, он перенаправил бы на эту страницу –

+0

Большое спасибо за этот ответ. Добавляю ли я что-нибудь еще, кроме «before_action: authenticate_user!». или автоматически перенаправляется на страницу входа при посещении корня? –

0

Изменить корень «логин» на корню «сессии # новый»

Придумайте «Вход» в качестве названия маршрута, что вы на самом деле хотите, чтобы пользователь сделать будет идти к контроллеру сеансов и новому действию в этом контроллере

2

Я пошел с

root :to => redirect('/login') 

Предложения делать дэ контроллер # действия это хорошо, но мне нравится директива перенаправления, потому что это позволяет мне изменить вещи в одном месте вместо того, чтобы редактировать вещи в несколько мест.