【发布时间】:2018-05-18 07:28:37
【问题描述】:
根据设计文档,我们可以使用以下内容覆盖默认会话路径:
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的作用和好处是什么?
【问题讨论】:
标签: ruby-on-rails devise routes