2009 年 9 月 2 日,星期三

Rails 中的几个月

作者 Gregg Pollack

过去一个月里社区涌现出了大量优秀的内容。你将在下面找到我在过去几周内发现的一些最有用的教程和知识库。这些故事直接来自 Ruby5 播客,它每周两次报道来自 Ruby 和 Rails 社区的新闻。

改善你的 Rails 代码

最近,James Golick 发布了一款名为< a href="http://jamesgolick.com/2009/8/5/observational-better-observers-for-activerecord.html">Observational 的精品,它为你提供了一种更好的方法,可以在 Rails 中使用观察者。你不必再为每个观察者创建单独的文件,而这款精品支持为每个对象的事件定义多个观察到的对象和特定的调用方法。

如果你想要开发一款充分利用子域的 Rails 应用程序,那么 Taylor Luk 提供了秘籍。他建议使用 subdomain-fu,展示如何在开发中使用代理 PAC 文件,以及介绍了他编写的一段 Rack 中间件,让你能在你的应用程序中使用完全自定义的域。

如果你像我们其他人一样喜欢< span class="caps">TATFT,我有两个知识库要向你介绍。第一个是来自 Devver 团队的精品,名为< a href="http://devver.net/blog/2009/08/unit-testing-filesystem-interaction/">Construct,它可以轻松测试与你的文件系统交互的代码。第二个是 Larry Karnowski 和 Chris Redinger 开发的Blue Ridge,它可以轻松编写 JavaScript 测试。Blue Ridge 已经发布一段时间了,但是本周,Noel Rappin 编写了一篇优秀的入门文章作为你的入门指南。

就在昨天,Fabio Akita 制作了一个屏幕录制,展示了如何使用 José Valim 开发的一款精品Inherited Resources简化“15 分钟内搭建 Weblog”的代码。这款精品使用你之前可能已在 make_resourceful 或 resource_controller 中看过的相同技术,但是改进了语法糖。

你应该了解的知识库

Patrick McKenzie 发布了A/Bingo,这是你的 Rails 应用程序的一款精品/插件,可以轻松执行 A/B 测试。这款精品易于理解,且使用简单的界面来定义测试,并提供有关哪个样本以及在多大程度上表现最好的信息。

Steve Richert 发布了一款名为vestal_versions 的精品,让你可以将你的 ActiveRecord 模型更改记录的历史存放在数据库中。它充分利用了 Rails 2.2 及更高版本中的几个较新功能,包括识别不干净的对象。

由 Ryan Bates 播报的Railscast #176 介绍了 Ben Johnson 开发的 Searchlogic,它可以让在 Rails 中创建高级搜索表单变得非常容易。

David Bock 发布了一个名为 Crondonkulous 的新功能,它允许您使用您的 Rails 应用程序在 Ruby 中编写 crontab 配方。当您部署这些配方时它们会自动发布到您的服务器的 crontab 中。

安全性

James Harton 发布了 Lockbox and acts_as_lockbox,它们通过为您的应用程序管理 RSA 公钥加密来为保护敏感数据提供一个简单的界面。这允许您定义哪些属性是敏感的,并提供全应用程序的锁和解锁功能。

Hongli Lai 撰写了一篇关于 保护您的用户密码安全 的精彩文章。他写了关于如何存储密码、哈希算法、加盐等内容。具体来说,他建议使用 Blowfish 文件加密或“bcrypt”,因为它是一种运行速度较慢的算法,因此更难破解。

在您的数据库中

Mauricio Linhares 发布了一个 Rails 插件,允许您执行 主/从复制。与受虐狂不同,master_slave_adapter 与 Rails 数据库连接池配合工作并以新的数据库适配器的形式实施。因此,无需任何猴子补丁。

Matt Jankowski 提供了一篇关于 正确地为 Rails 应用程序索引您的数据库 的精彩文章。他涵盖索引验证和 STI 列、状态机的状态列、关联列等。

xing 的开发人员创建了一个名为 FlagShihTzu 的插件。它不是一只狗......甚至不是您的 Tamagotchi 的多玩家游戏。FlagShihTzu 将任意数量的 ActiveRecord 布尔模型属性存储为单个数据库字段,以每个位作为唯一键。但是,有趣的是,界面对于您应用程序的其余部分完全保持不变。


感谢阅读如果您有任何您希望传播的消息或库,请随时通过向 Ruby5 提交消息与我联系。

图片来源:蓝天上的铁轨 by ecstaticist, 模拟解决方案 606 模组 by Formication, 2006 年 RailsConf 欧洲 by Paul Watson, 彩虹 by One Good Bumblebee. 奥兰治县安全性 by henning