Ruby on rails 是",;资源“;routes.rb中的函数是否仅负责创建访问资源所需的URL?

Ruby on rails 是",;资源“;routes.rb中的函数是否仅负责创建访问资源所需的URL?,ruby-on-rails,ruby,rest,Ruby On Rails,Ruby,Rest,在本教程中,我们有一个用户模型。作者让我们使用resources:users让rails生成REST风格的URL(/users,/users/new,等等)。但在第二行,他让我们将/signup匹配到用户#new。如果这一行不在这里,我们只能使用resources:users行生成的REST url访问新用户。在这种情况下,它将是/users/new。但是现在,他已经设置好了,如果我们想访问新用户,我们只需要访问/signup 通过将/signup与用户#new匹配,我们在技术上是否完全忽略了资

在本教程中,我们有一个
用户
模型。作者让我们使用
resources:users
让rails生成REST风格的URL(/users,/users/new,等等)。但在第二行,他让我们将
/signup
匹配到
用户#new
。如果这一行不在这里,我们只能使用
resources:users
行生成的REST url访问新用户。在这种情况下,它将是
/users/new
。但是现在,他已经设置好了,如果我们想访问新用户,我们只需要访问
/signup


通过将
/signup
用户#new
匹配,我们在技术上是否完全忽略了
资源
功能为我们创建的路线?据我所知,对于新用户,
资源
所做的唯一一件事就是将
/users/new
路由到
用户#new
,但他不再使用了。是否有
资源
所做的其他事情,或者他完全抛弃了它生成的URL,并用
/signup
替换它

它不会放弃新路线,它只是将
/signup
映射到正常的新路线之外的
#new
操作。

/signup
并没有取代
/users/new
,它是对它的补充。为某些路径创建快捷方式很常见,尤其是为用户更容易理解的URL创建快捷方式。

但是我们不能摆脱
资源:用户
/signup
仍然可以工作,因为我们需要
用户#new
退出的所有内容都是
用户
控制器中的
定义new
,当然,如果您不在
userscoontroller
上使用任何其他方法,
注册就足够了。诚然,所有
资源:用户所做的就是将各种
/users
路径连接到控制器,并为您提供
/new\u user\u path
-类型的帮助程序。因此,从技术上讲,
/signup
只是在替换
/users/new
,是吗?您对“替换”的用法我不清楚。它并没有删除
/users/new
,所以对我来说,它并没有取代它。但是如果你说“替换”的意思是“删除对的需要”,那么当然,这就是正在发生的事情。是的,你不需要
资源
行。您还可以获得
匹配的帮助程序
注册路径
注册url
。但是对于
用户#create
来说,什么捷径才是真正有意义的呢?如果你要实现所有的控制器操作,那么用名称来替换它们会变得越来越麻烦。但是将
/signup
路由到
用户#new
意味着将永远不会使用
/users/new
,而
/signup
会,对吗?
Rails.application.routes.draw do
    resources :users
    match '/signup',  to: 'users#new', via:'get'
end