Rails 2.3 的开发仍在健康地进行中。以下是本周的概览。
Rails 现在集成了 Jeremy McAnally 的 rg 应用程序生成器。这意味着我们现在已经将基于模板的应用程序生成功能直接内置于 Rails 中;如果您有一组在每个应用程序中都包含的插件(以及许多其他用例),您可以设置一次模板,然后在运行 rails 命令时一遍又一遍地使用它。Pratik Naik 在他的博客上 详尽地撰写 了这个功能。 提交
即使是 Active Record 用来与数据库通信的可敬代码也可以得到改进,本周我们有几项改进已提交。首先,为预加载 has_and_belongs_to_many 关联记录而生成的 SQL 移除了额外的“AS”,这使得它能更好地与某些数据库一起工作。此外,我们现在在 find(以及 has_many 和 has_and_belongs_to_many 关联)上有一个 :having 选项,用于过滤分组查找中的记录。正如那些具有深厚 SQL 背景的人所知道的,这允许基于分组结果进行过滤。
developers = Developer.find(:all, :group => "salary",
:having => "sum(salary) > 10000", :select => "salary")
Rails 与 Rack 的更紧密集成仍在继续。本周,Rails 中可敬的 CGI 处理器被淘汰,并且使用了 Rack 来处理 FCGI。Rails 的测试也进行了一些重构,使其与 Rack 更加兼容。 提交 提交
多年来,默认的 environment.rb 文件已经变得有些杂乱,充满了注释、随机文档和大多数人不需要的设置。DHH 花了几分钟时间清理了这个混乱,该文件的 当前状态 要精简得多。作为清理的一部分,会话存储配置已移至其自己的文件中。 提交
如果您是(相当少见的)依赖 inspector、reaper 和 spawner 脚本进行部署的 Rails 开发者之一,您需要知道这些脚本不再包含在核心 Rails 中。对于使用 Passenger 等当前替代方案重新部署的 Rails 应用程序来说,这些只是不必要的负担。但如果您需要它们,您可以通过 irs_process_scripts 插件获取副本。 提交
Rails 检查 IP 欺诈的功能可能会给使用手机进行大量流量的网站带来麻烦,因为它们的代理通常不会正确设置。如果您是这种情况,现在可以将 ActionController::Base.ip_spoofing_check = false 设置为完全禁用该检查。 提交
Rails.root 现在返回一个 Pathname 对象,这意味着您可以直接使用它与 join 方法结合来 清理现有代码,而这些代码曾使用 File.join。 提交
ActionController::Dispatcher 现在实现了自己的中间件堆栈,您可以通过运行 rake middleware 来查看。 提交
Gem 加载对于缺失的依赖项更加智能。 提交
auto_link 现在可以正确地将选项(如 :target 和 :class)应用于生成的电子邮件链接。 提交