Posted on 2007-02-06 13:37
dennis 阅读(443)
评论(0) 编辑 收藏 所属分类:
动态语言
读R4R,才读完第2章,前两章没什么新内容,算是复习吧
rails的lifecycle:
从浏览器发起一个请求的基本流程:
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是更好的方法