根据设计文档,我们可以使用以下内容覆盖默认会话路径:
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
的功能和好处是什么?
答案 0 :(得分:0)
设计的RESTful路线如下:devise_for :users ...
在任何情况下,as
都相当于devise_scope
,并且它们用于指定您的自定义路线。
以下是此问题的documentation。