Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails会按照它的方式排列从资源创建的7条路由?_Ruby On Rails - Fatal编程技术网

Ruby on rails 为什么Rails会按照它的方式排列从资源创建的7条路由?

Ruby on rails 为什么Rails会按照它的方式排列从资源创建的7条路由?,ruby-on-rails,Ruby On Rails,这纯粹是好奇。假设我有一个资源“Users”,并希望为其创建一组标准的7条路由。在我的路由文件中,我只需输入resources:users。当运行rake routes时,我们得到的是: users GET /users(.:format) users#index POST /users(.:format) users#create new_user GET /users/new(.:format)

这纯粹是好奇。假设我有一个资源“Users”,并希望为其创建一组标准的7条路由。在我的路由文件中,我只需输入
resources:users
。当运行
rake routes
时,我们得到的是:

     users GET    /users(.:format)           users#index
           POST   /users(.:format)           users#create
  new_user GET    /users/new(.:format)       users#new
 edit_user GET    /users/:id/edit(.:format)  users#edit
      user GET    /users/:id(.:format)       users#show
           PUT    /users/:id(.:format)       users#update
           DELETE /users/:id(.:format)       users#destroy
是不是有什么特别的原因让它这样订购?我知道将使用符合请求的第一条路由

我的困惑源于我的思维过程,即用户-显示路线将列在第三位,而不是新用户-处于该位置


如果有人能给我一些关于这个订购方案的见解,那就太好了。

没有特别的原因说明为什么它们是这样的,它们就是这样

它可能源于旧的(我这里说的是1.2天)脚手架控制器布局,其中的动作是按顺序排列的


我能想象你在这里会遇到的唯一问题是,如果你有一个id为
new
id
用户,它会首先进入
userscoontroller\new
,而不是理想的
userscoontroller\show
。解决方法相当简单:不要让用户将自己标识为“新的”。

如果第三个是“显示用户”,那么
/users/new
将尝试向用户显示
:id
“新的”。

我从
:集合
路由和
:new
路由开始阅读它们,然后
:成员
路由。

嗯。。。我的意思是整行可以列在第三位,而不仅仅是交换控制器/动作。不,这就是我的意思。对不起,我不清楚。对
/users/new
的请求将由与
用户#show
路由匹配的第一条路由响应,在这种情况下,该路由被解释为具有
:id
值的“new”。正如Ryan指出的,这很可能会返回404错误(或者弄脏你的应用程序),并且无论如何都会阻止你查看新的用户表单。啊,我现在明白了。谢谢这就是我所希望的答案。谢谢