routes.rb中的“资源”功能是否只负责创建访问资源所需的URL?

时间:2014-05-12 17:11:59

标签: ruby-on-rails ruby rest

Rails.application.routes.draw do
    resources :users
    match '/signup',  to: 'users#new', via:'get'
end

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

通过将/signupusers#new相匹配,我们在技术上是否完全忽略了resources函数为我们创建的路径?据我所知,对于#new用户来说,resources唯一做的就是将/users/new路由到users#new,但他不再使用它了。还有其他resources做了什么,或者他是否完全丢弃了它生成的网址,并将其替换为/signup

2 个答案:

答案 0 :(得分:1)

它不会消除新路线,除了正常的新路线外,它只会将/signup映射到#new动作。

答案 1 :(得分:1)

/signup不是替换 /users/new,而是补充它。为某些路径创建快捷方式很常见,特别是对于用户更容易理解的URL。