Rails 2.3 开发仍在持续进行。以下是本周发生内容的概述。
Rails 现在融合了 Jeremy McAnally 的 rg 应用程序生成器。这意味着我们现在可以内置基于模板到 Rails 中来生成应用程序;如果你有一套在每个应用程序中都包含的插件(除许多其他用例外),你只需在运行 rails
命令时设置一次模板并一遍又一遍地重复使用即可。Pratik Naik 在其博客上对该功能进行了 全面撰写。 提交
即使 Active Record 用于与数据库通信的备受推崇的代码也能得到改进,本周还有一些改进得到 check in。首先,为在 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)。提交