Железнодорожные маршруты: блок as-block и device_for - PullRequest
0 голосов
/ 18 мая 2018

Согласно документации devise, мы можем переопределить пути сеансов по умолчанию, используя следующее:

as :user do
   get 'login', to: 'users/sessions#new', as: :new_user_session
   post 'login', to: 'users/sessions#create', as: :user_session
   delete 'logout', to: 'users/sessions#destroy', as: :destroy_user_session
end 

Это создаст следующие маршруты:

Helper Path                   URL        Controller
new_user_session_path        /login      users/sessions#new
user_session_path            /login      users/sessions#create
destroy_user_session_path    /logout     users/sessions#destroy

Однако, без переноса определенногопуть внутри блока as-block или devise_scope, такой как приведенный ниже, , мы производим одинаковые точные маршруты .

get 'login', to: 'users/sessions#new', as: :new_user_session
post 'login', to: 'users/sessions#create', as: :user_session
delete 'logout', to: 'users/sessions#destroy', as: :destroy_user_session

Мой вопрос: зачем нам вообще нужноблок as-block / device_for?Почему бы просто не определить это напрямую?Каковы функции и преимущества as-block?

1 Ответ

0 голосов
/ 18 мая 2018

RESTful маршруты для устройства выглядят так: devise_for :users ...

В любом случае as эквивалентно devise_scope, и они предназначены для указания ваших пользовательских маршрутов.

Вот документация по этому вопросу.

...