我正在研究以下代码:
Helloworld::Application.routes.draw do
match 'products/:id/purchase' => 'catalog#purchase'
resources :products do
member do
get 'short'
post 'toggle'
end
collection do
get 'sold'
end
end
end
有人可以解释一下,如何将 URL 映射到幕后的控制器?
我理解的方式:
- 来自 Rack 的请求对象进来;
draw
评估其代码块;match
,resources
and etc 定义在与 相同的范围内draw
,因此这些函数一个接一个地执行,试图匹配 Request. 如果其中之一发生,它会调用正确的控制器操作。
这个对吗?
谢谢!