在Ruby on Rails中,routes.rb,如果map.something将创建something_path和something_url,map.connect是否也会创建类似的东西?

时间:2010-06-12 11:05:43

标签: ruby-on-rails routing routes named-routing

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

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

它还将创建something_pathsomething_url,它们是控制器和视图中可用的两种方法。 map.connect也会创建类似的东西吗?否则,map.connect这种方式有点不利吗?我检查了connect_pathconnect_url都不是自动创建的。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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'

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