ActionController:路由与URL

来源:转载

1、基础

从最简答的意义上讲,web应用即接收来自浏览器的请求,处理它,然后送回回答。

第一个问题是:应用程序怎么‘接收请求’?

第二个问题是:应用程序该如何‘处理请求’?

第三个问题是: 应用程序如何‘送回回答’?

Rails对URL请求中包含的信息进行了编码,然后用路由(routing)子系统来判断应该如何处理这些请求。

例如:购物车应用收到一个请求可能是: http://my.shop.con/store/show_product/123

在应用程序内部,它会被解释为:条用StoreController类的show_product方式,显示id为123的货品详细信息

2、请求的路由

深入研究一下Rails如何将URL请求映射到特定的控制器和action

打开config/routes.rb,会有以下一段代码:

ActionController::Routing::Routs.draw do |map|

map.connect ':controller/service.wsdl', :action => 'wsdll'

map.connect ':controller/:action/:id'

end

Routing组件建立了一个映射关系,将外部的URL与内部的应用程序连接起来。

这里的每个map.connect声明都指定了一条联系URL与程序代码的路径。

看看第二行map.connect代码,‘:controller/:action/:id’描述了一个模式,Rails会用它来匹配请求URL中的路径部分。在这个例子中,如果URL的路径部分由三部分组成,它就会与这个模式匹配上。

如果URL中的路径信息是 store/add_to_cart/123,你就会i得到下列参数:

@params = {

:controller => 'store',

:action =>'add_to_cart',

 :id => '123'

}

分享给朋友:
------分隔线----------------------------
您可能感兴趣的文章:
随机阅读: