一个请求来了以后,首先是ActionController。
ActionController是rails的控制中心,它本身是一个module,module 里面有一个base类,所有的controller,包括ApplicationController都继承base。
base的主要职责是,解析请求的参数,执行filter,执行action,最后,也是关键的一步,
调用ActionView.base.new得到一个解析template的对象,由ActionView.base完成template的解析。
在ActionController这个module之中由很多其他相关的module被base mixin。ruby就是这种风格,class+module. class是对象的抽象, module是对象中相关功能的集合,是功能的抽象。有的时候感觉两个不相干的对象有类似或同样的功能,但是通过抽取基类的方式把他们搞到一起又有一点勉强。这样的功能最好放到module面。还有的时候觉得一个类太大了,包好若干个大块的功能,每一块的功能也可以抽取出一个module。ActionView::Base只是实现了主干的功能,其他的一些附加的功能,比如:flash,就是用module来实现的。
再得瑟一下ActionView::Base,和controller一样,base里只是主干,根据template的后缀找相应的template的handler,handler负责处理template的解析。其中,base在执行的过程中会load一系列view helper,其中包括application_view_helper.
view helper 被base mixin 以后,里面的方法就可以直接在template上使用。
.html.erb的解析使通过ruby 的ERB template 解析器完成的。
对不对的先这样吧
分享到:
- 2009-02-23 17:39
- 浏览 975
- 评论(0)
- 论坛回复 / 浏览 (0 / 1705)
- 查看更多
相关推荐
Granite一种Rails应用程序体系结构框架
Rails的部署方式的核心问题就在于解决一、Rails本身是非线程安全,二、Ruby的线程性能差这两个问题上。本文列举了十余种常见的Rails部署方案,其中基于Lighttpd 1.5的几种解决方案都从原理上很好地解决了Rails部署的...
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
一个用Ruby on Rails搭建的图片分享的网站项目.完整源代码
《Rails之道》按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基础、关联、验证和高级技巧,...
本资源是参照rails敏捷开发第四版书中的例子,rails的版本是rails3.2.6
Bootstrap 3 和 Rails 4(样例用的是Ruby 2.1.1,Rails 4.1.4) Table of Contents Preface 1 Chapter 1: Introducing Web Application Development in Rails 7 Why Bootstrap with Rails? 8 Setting up a Todo ...
adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成 AdminLTE Rails gem AdminLTE 是后端的高级 Bootstrap 主题。英镑 AdminLTE Rails gem 与 Rails 资产管道集成了英镑AdminLTE主题。安装将...
中文世界唯一一本Rails 4.0.0 + Ruby 2.0.0 的自學書籍
rails文档 rails api 英文
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文
rails指南 中文版
Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of ...
介绍rails框架,版本是rails2点几的,不过思路差不多,具体区别可以去看官网
Ruby+on+Rails+3+Tutorial.pdf 应用Rails进行敏捷Web开发第4版.pdf (Agile Web Development with Rails) Rails.Recipes.Rails.3.Edition.pdf