
上个月社区涌现出大量精彩内容。下面将为您呈现我近几周来发现的一些最实用的教程和库。这些内容均直接来源于Ruby5播客,该播客每周两次报道Ruby和Rails社区的新闻。
改进你的Rails代码
James Golick最近发布了一个名为Observational的gem,它提供了一种更好的Rails中Observer的使用方法。该gem允许你定义多个被观察对象以及针对每个对象的事件调用特定方法,而不是为每个Observer创建一个文件。
如果你想开发一个利用子域的Rails应用,Taylor Luk有这个方法。他推荐使用subdomain-fu,演示了如何在开发环境中使用代理PAC文件,并介绍了他编写的一段Rack中间件,它允许你在应用中使用自定义域名。
如果你像我们其他人一样喜欢TATFT(测试驱动开发),那么我有两个库要告诉你。第一个是Devver团队开发的名为Construct的gem,它简化了与文件系统交互的代码的测试。第二个是Larry Karnowski和Chris Redinger开发的Blue Ridge,它简化了JavaScript测试的编写。Blue Ridge已经发布了一段时间,但本周Noel Rappin撰写了一篇很棒的入门文章来帮助你开始。
就在昨天,Fabio Akita发布了一个屏幕录像,展示了如何使用José Valim开发的Inherited Resources gem来简化“15分钟搭建博客”的代码。该gem有助于减少控制器的代码重复。它使用了你可能之前见过的make_resourceful或resource_controller之类的技术,但具有改进的语法糖。
你应该知道的库

Patrick McKenzie发布了A/Bingo,这是一个用于Rails应用的gem/插件,可以轻松进行A/B测试。它提供了一个相当直观和简单的界面来定义测试,并提供关于哪个样本表现最佳以及幅度如何的信息。
Steve Richert发布了一个名为vestal_versions的gem,它允许你在数据库中保存ActiveRecord模型所有更改的历史记录。它利用了Rails 2.2+的一些新特性,包括识别脏对象。
Ryan Bates的Railscast #176介绍了Ben Johnson开发的Searchlogic,它可以非常轻松地在Rails中创建高级搜索表单。
David Bock发布了一个名为Crondonkulous的新gem,它允许你在Rails应用中用Ruby编写crontab配置。这些配置在部署时会自动发布到服务器的crontab中。
安全

James Harton发布了Lockbox and acts_as_lockbox,它们提供了一个简单的接口,通过管理应用程序的RSA公钥加密来保护敏感数据。这允许你定义哪些属性是敏感的,并提供应用程序范围内的锁定和解锁功能。
Hongli Lai写了一篇关于安全存储用户密码的精彩文章。他讨论了如何存储密码、哈希算法、加盐等。特别是,他推荐使用Blowfish文件加密,或称“bcrypt”,因为它是一种运行速度较慢的算法,这会增加破解的难度。
在你的数据库中

Mauricio Linhares为Rails发布了一个插件,允许你进行主/从复制。与masochism不同,master_slave_adapter与Rails数据库连接池协同工作,并实现为一个新的数据库适配器。因此,无需进行猴子补丁。
Matt Jankowski提供了一篇精彩的文章,介绍如何为你的Rails应用正确地索引数据库。他涵盖了索引验证和STI列、状态机的状态列、关联列等等。
xing的开发者创建了一个名为FlagShihTzu的插件。它不是一只狗,甚至不是一个为你数码宝贝准备的多人游戏。FlagShihTzu将任意数量的ActiveRecord布尔模型属性存储为单个数据库字段,每个位作为一个唯一的键。但有趣的是,对应用程序的其余部分而言,接口保持不变。
感谢您的阅读,如果您有任何新闻或库想要推广,请随时通过Ruby5提交新闻。
图片来源:Blue Sky on Rails by ecstaticist, Analog Solutions 606 Mod by Formication, RailsConf Europe 2006 by Paul Watson, Rainbow by One Good Bumblebee. Orange County Security by henning