Ruby on Rails 2.0的新特性介绍
http://tech.ddvip.com 2008年01月18日 社区交流
内容摘要:在详细的介绍Rails2.0之前,我要向那些为Rails框架做出过贡献的每一个人致以深深的谢意,不论是像一个家庭那样其乐融融的Rails核心开发团队,还是成千上万的、而且年复一年为Rails提交补丁,积极参与Rails社区人们。Rails2.0也是大规模开源软件开发社区的一个重大胜利,而你完全可以自豪于你在Rails社区当中扮演的角色和做出的贡献。干杯!
class PostsController < ApplicationController
rescue_from User::NotAuthorized, :with => :deny_access
protected
def deny_access
...
end
end
Action Pack: Cookie store sessions
Rails2.0默认的Session存储机制现在是基于Cookie的方案。Session也可以不必存储在服务器的文件系统或者数据库系统里面,而是以ruby hash的格式每次作为cookie发送到客户端浏览器来保持。这样做不单单会比传统的服务器端保存Session的方式要快一些,而且完全不需要维护。你不需要在服务器上面运行cron job任务来清理session文件,也不必担心因为你忘记清理session文件导致你的服务器/tmp分区下面因为塞满了50万的session文件,从而让你的服务器crash掉。
如果你能够遵循一些最佳实践,保持session最小化,例如只在session里面存放user_id和flash信息,那么这种session机制就会很棒。但是,如果你打算在session里面保存核弹发射代码的话,这一存储机制就不是一个好主意了。因为它们无法被加密(例如用户伪造is_admin=true),它们很容易被用户看到。如果对于你的应用程序来说,这是一个必须注意的问题,那么你就应该使用传统的session存储机制(但你首先应该先做一下调查)。
Action Pack: New request profiler
在一个真实的应用当中找出性能瓶颈是一个艰难的活,但有了我们新的request profiler,工作会变得简单很多。request profiler跟踪一个完整的执行脚本,报告执行结果,你可以像这样来使用它:
$ cat login_session.rb
get_with_redirect '/'
say "GET / => #{path}"
post_with_redirect '/sessions', :username => 'john', :password => 'doe'
say "POST /sessions => #{path}"
$ ./script/performance/request -n 10 login_session.rb
来源:javaeye 作者:robbin 责编:豆豆技术应用