Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497684
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:34:10

下载本文示例代码
          推荐:Ruby专区  在一个基于MVC的Web应用程序中,应用程序逻辑以及数据的存取是由MVC中的C,也就是控制器来完成的。因此,深刻地理解MVC框架所提供控制器对于开发一个高效、可升级、稳定的应用程序是十分必要的。RoR也不例外。   RoR中所提供的控制器叫动作控制器(ActionController)。本文将主要讨论动作控制器所提供的几种服务,以及如何使用动作控制器。  什么是动作控制器  在RoR中,动作包(Action Pack)是这个框架的核心。它包括两部分,动作视图和动作控制器。动作包的一个特点是除了Web程序,不能使用在其它类型的程序中。下面让我们看看在我们通过浏览器键入一个URL后,如,都发生了什么。下面是在RoR中处理动作的步骤:  1. RoR首先装载了位于app/controllers目录中的say_controller.rb文件。这个文件只被装载一次。  2. 然后 RoR建立了类SayController的实例。  3. 一旦SayController类被实例化,RoR就会在app/helpers中查找say_helper.rb文件。如果这个文件存在,它就会被装载,并且这个文件将会和SayController对象混合。这就意味着在SayController对象中可以直接访问SayHelper中的方法。  4. 最后在app/models中查找say.rb文件,如果存在,装载它。  到现在为止,我们已经对应用程序的初始化过程非常清楚了,接下来让我们继续看看动作控制器所提供的服务。下面是RoR所提供的服务列表:  1. URL映射  2. 会话跟踪  3. 过滤和验证  4. 缓冲  现在又带来一个问题。这些服务为什么由控制器来提供。当然,答案也很简单,这是因为控制器介于数据和应用程序之间,因此,它可以监视数据的存取,并且可以根据需要对URL进行映射。因此,这些服务理所当然由控制器来提供。下面我们将详细讨论控制器提供的这些服务。  1. URL映射  当我们在浏览器中输入时,会显示相应的内容。但你也许会有疑问,RoR是如何将URL链接映射成相应的类或方法呢?事实上,这些映射的代码都被写在了config目录中的routers.rb中。下面是这个文件的部分代码。 ActionController::Routing::Routes.drawdo|map|map.connect ':controller/service.wsdl', :action => 'wsdl'map.connect ':controller/:action/:id'end  动作控制器通过它的映射组件将来自外部请求的URL和内部的应用程序连接了起来。上述代码的第3行就是完成这个功能的。在这行语句中,map.connect的连接字符串是":controller/:action/:id"。请求的URL只有匹配这个字符串才能被接受。对于一个URL请求来说,它可以被RoR分成三部分:  a. 第一部分是模式字符串中的:controller部分。  b. 第二部分是模式字符串中的:action部分。  c. 第三部分是模式字符串中的:id部分。  根据上面所描述的三部分,URL:将被映射成以下三部分: :controller : 'admin',:action :'show',:id :1   根据以上的三部分,RoR将调用admin控制器的show方法,并将参数1传到show方法中。因此,我们可以看出,RoR在其中做了很多本应该由我们做的事件。因此,RoR是一项十分强大技术。共2页。 1 2 :           推荐:Ruby专区  在一个基于MVC的Web应用程序中,应用程序逻辑以及数据的存取是由MVC中的C,也就是控制器来完成的。因此,深刻地理解MVC框架所提供控制器对于开发一个高效、可升级、稳定的应用程序是十分必要的。RoR也不例外。   RoR中所提供的控制器叫动作控制器(ActionController)。本文将主要讨论动作控制器所提供的几种服务,以及如何使用动作控制器。  什么是动作控制器  在RoR中,动作包(Action Pack)是这个框架的核心。它包括两部分,动作视图和动作控制器。动作包的一个特点是除了Web程序,不能使用在其它类型的程序中。下面让我们看看在我们通过浏览器键入一个URL后,如,都发生了什么。下面是在RoR中处理动作的步骤:  1. RoR首先装载了位于app/controllers目录中的say_controller.rb文件。这个文件只被装载一次。  2. 然后 RoR建立了类SayController的实例。  3. 一旦SayController类被实例化,RoR就会在app/helpers中查找say_helper.rb文件。如果这个文件存在,它就会被装载,并且这个文件将会和SayController对象混合。这就意味着在SayController对象中可以直接访问SayHelper中的方法。  4. 最后在app/models中查找say.rb文件,如果存在,装载它。  到现在为止,我们已经对应用程序的初始化过程非常清楚了,接下来让我们继续看看动作控制器所提供的服务。下面是RoR所提供的服务列表:  1. URL映射  2. 会话跟踪  3. 过滤和验证  4. 缓冲  现在又带来一个问题。这些服务为什么由控制器来提供。当然,答案也很简单,这是因为控制器介于数据和应用程序之间,因此,它可以监视数据的存取,并且可以根据需要对URL进行映射。因此,这些服务理所当然由控制器来提供。下面我们将详细讨论控制器提供的这些服务。  1. URL映射  当我们在浏览器中输入时,会显示相应的内容。但你也许会有疑问,RoR是如何将URL链接映射成相应的类或方法呢?事实上,这些映射的代码都被写在了config目录中的routers.rb中。下面是这个文件的部分代码。 ActionController::Routing::Routes.drawdo|map|map.connect ':controller/service.wsdl', :action => 'wsdl'map.connect ':controller/:action/:id'end  动作控制器通过它的映射组件将来自外部请求的URL和内部的应用程序连接了起来。上述代码的第3行就是完成这个功能的。在这行语句中,map.connect的连接字符串是":controller/:action/:id"。请求的URL只有匹配这个字符串才能被接受。对于一个URL请求来说,它可以被RoR分成三部分:  a. 第一部分是模式字符串中的:controller部分。  b. 第二部分是模式字符串中的:action部分。  c. 第三部分是模式字符串中的:id部分。  根据上面所描述的三部分,URL:将被映射成以下三部分: :controller : 'admin',:action :'show',:id :1   根据以上的三部分,RoR将调用admin控制器的show方法,并将参数1传到show方法中。因此,我们可以看出,RoR在其中做了很多本应该由我们做的事件。因此,RoR是一项十分强大技术。共2页。 1 2 : 下载本文示例代码


Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览Ruby on Rails:控制器纵览
阅读(197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~