Организация маршрутов в Rails — restful_authentication, session и /login

StackOverflow https://stackoverflow.com/questions/209953

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь настроить маршрут для приложения Rails.Я установил restful_authentication и в основном следовал инструкциям.Я настроил маршруты следующим образом:

map.login '/login', :controller => 'sessions', :action => 'new'
map.logout '/logout', :controller => 'sessions', :action => 'destroy'
map.resource :session

Если вы не вошли в систему, вы будете перенаправлены на http://localhost:3000/сессия/новый.В этом есть какой-то смысл, как говорит код в lib/authenticated_system.rb. redirect_to new_session_path.

Но я думал, что сопоставление маршрутов должно работать в обоих направлениях (код в URL и URL в код).Может кто-нибудь объяснить?Спасибо

Это было полезно?

Решение

map.resource :session создает для вас несколько именованных ресурсов, включая new_session_path (видеть ActionController::Ресурсы).

map.login и map.logout это всего лишь вспомогательные маршруты, которые облегчают понимание вашего кода. map.login (который генерирует login_path) указывает на ту же комбинацию контроллер/действие, что и new_session_path делает, просто легче сразу запомнить, что он делает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top