在Ruby on Rails中,routes.rb,如果我们创建一个“命名路由”
map.something ":a/:b", :controller => 'foobar'
它还将创建something_path
和something_url
,它们是控制器和视图中可用的两种方法。 map.connect
也会创建类似的东西吗?否则,map.connect
这种方式有点不利吗?我检查了connect_path
和connect_url
都不是自动创建的。
答案 0 :(得分:1)
你的想法是正确的。 map.connect
无法创建something_path
和something_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'
如果您注释掉上述两行,除了您使用命名路线/资源定义的路线外,您将无法到达任何路线。