【发布时间】:2016-04-11 05:58:34
【问题描述】:
在 2.3 中,有
map.connect ':controller/:action/:id'
我尝试访问例如“/resource/edit”,找到控制器资源和动作编辑没有问题。
在 4.2 中,我使用
get ':controller/:action/:id'
“/resource/edit”不起作用。我猜是因为没有:id?
如果我改成
get ':controller/:action(/:id)'
这使得 :id 可选,然后一切正常。
所以我的问题是:
1) 我的猜测正确吗?即:对于 2.3,您不需要定义可选,它将是可选的,但对于 4.2,您必须定义可选以使其成为可选。
2) 对于 2.3,一次
map.connect ':controller/:action/:id'
已定义,是否为所有 GET/POST/PATCH/DELETE 等定义?对于 4.2,我必须定义以下内容?
get ':controller/:action(/:id)'
post ':controller/:action(/:id)'
一一等等?
- 您还能想到其他重大差异吗?
谢谢。
【问题讨论】:
-
你可以在这里找到很多信息:guides.rubyonrails.org/routing.html
-
但他们只是没有告诉你区别,或者指出哪些代码被破坏了。我正在从 2.3 迁移到 4,我需要确切知道发生了什么变化。现在我能做的就是看看测试中出了什么问题,并尝试猜测是不是因为规则改变了。
标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-2