庄周梦蝶

生活、程序、未来
   :: 首页 ::  ::  :: 聚合  :: 管理

rails流程图

Posted on 2007-02-06 13:37 dennis 阅读(430) 评论(0)  编辑  收藏 所属分类: 动态语言

读R4R,才读完第2章,前两章没什么新内容,算是复习吧

rails的lifecycle:
test3.jpg

从浏览器发起一个请求的基本流程:

A.server to dispatcher

服务器通过你指定的路径查找dispatcher,比如,你在apache配置:

<VirtualHost www.r4rmusic.com>
ServerName www.r4rmusic.com
ServerAlias r4rmusic.com
DocumentRoot "/usr/local/share/railsapps/r4rmusic/public/"
</VirtualHost>

服务器将在"/usr/local/share/railsapps/r4rmusic/public/下查找分发器,在rails应用下面有这么几个文件就是:dispatch.cgi dispatch.fcgi dispatch.rb

这几个文件中的某个将被调用

B.dispatcher to controller

分发器将解析发起请求的URL,按照:

1.controller的名称

2.action名称

3.请求id值

来寻找相应的controller的action,并执行.当然,你可以通过编辑config下面的routes.rb来定义自己的路由规则

C.performance of a controller action

当相应的controller以及相应的action被找到并且执行,他们将可以访问:

1.CGI数据,form提交的数据

2.controller的session信息,内建的session方法

本质上rails是把业务逻辑放在controller的action里面,也就是没有我们在J2EE中所谓的业务逻辑层.当业务逻辑或者说action较多时,你的controller文件不可避免的变的很长...在维护性和可读性也许会带来问题,当然,细分controller是更好的方法


只有注册用户登录后才能发表评论。


网站导航: