0

在 Ruby on Rails 中,routes.rb,如果我们创建一个“命名路由”

map.something ":a/:b", :controller => 'foobar'

它还将创建控制器something_pathsomething_url视图中可用的两种方法。是否map.connect也创造了类似的东西?不然这样是不是map.connect有点吃亏?我检查了一下connect_pathconnect_url两者都不是自动创建的。

4

2 回答 2

1

你的想法是正确的。map.connect不创建something_pathand something_url。这就是命名路由的目的,例如map.something:创建“名称”,因此名称为“命名路由”。

于 2010-06-12T11:13:03.157 回答
0

命名路由可以被认为是命名map.connect路由。map.connect只是建立一个指向控制器内动作的路由。但是在任何地方一次又一次地调用路线会很痛苦。使用命名路由更具可读性。的优点map.connect是可以连接到任何控制器动作。如果您仔细阅读 routes.rb 文件,您会发现以下两个语句的优先级最低:

Note: These default routes make all actions in every controller accessible via GET requests. You should
consider removing or commenting them out if you're using named routes and resources.
    map.connect ':controller/:action/:id'
    map.connect ':controller/:action/:id.:format'

如果您注释掉以上两行,您将无法到达任何路线,除了您使用命名路线/资源定义的路线。

于 2010-06-12T13:38:51.363 回答