Ruby on rails 轨道路线:作为闭塞和闭塞设备
根据Deviate文档,我们可以使用以下内容覆盖默认会话路径:Ruby on rails 轨道路线:作为闭塞和闭塞设备,ruby-on-rails,devise,routes,Ruby On Rails,Devise,Routes,根据Deviate文档,我们可以使用以下内容覆盖默认会话路径: 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 en
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块
或设计范围
块(如下面的块)中,我们将生成相同的精确路径
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
我的问题是,为什么我们甚至需要
作为块
/device\u作为块?为什么不直接定义它呢?as块的功能和好处是什么?designe的RESTful路由看起来像:designe\u for:users…
在任何情况下,as
等同于设计范围
one,它们是为指定自定义路线而设计的
这是关于这个问题的答案。是的,我知道它们用于指定自定义路线。我的问题是,如果as
块产生相同的结果,即使我没有将其包装在as
块中,为什么还要将其包装在as
块中block@Tikiboy因为在r/ror中,您可以通过不同的方式实现目标。但是我认为,as
更具可读性,而且:@MichaelArkhipov-你是说它纯粹是装饰性的。这不是一个很令人满意的答案。