是时候对 Rails 1.2 进行又一次小更新了。这主要是因为 SQLite 在 3.3.7 和 3.3.8+ 版本之间的 API 发生了变化,这使得“Rails 的数据库适配器孤立无援”。但随着此次发布以及 Jamis Buck 的 sqlite3-ruby gem 更新到 1.2.1 版本,我们又可以在所有版本的 SQLite3 上正常工作了。
其次,我们现在依赖 RubyGems 0.9.0 及以上版本。这将修复 require_gem 的弃用消息(新方法是 gem),并恢复 rake rails:freeze:gems 的正常工作。因此,请务必在安装之前更新到最新的 RubyGems。这可以通过“gem update --system”完成。
最后,除了上述修复和本次发布的其他错误修复之外,我们还决定增加一些新功能。例如,单数资源允许你在域的范围内对单例资源进行建模。常见的例子是 user.application.com/account。现在可以使用以下方式进行建模:
map.resource :account
…并相应地配置路由
GET /account => AccountController#show GET /account/new => AccountController#new GET /account;edit => AccountController#edit POST /account => AccountController#create PUT /account => AccountController#update DELETE /account => AccountController#destroy
请注意,控制器也是单数形式,而不是像使用 map.resources 时通常那样使用复数形式。
我们还将 Active Record 中的 :conditions 增强功能引入,允许你传入范围,并自动将其转换为 BETWEEN 语句。例如:
Student.find(:all, :conditions => { :grade => 9..12 })
…然后会变成:
“SELECT * FROM students WHERE grade BETWEEN 9 AND 12”
强烈建议所有运行 1.2.x 的用户进行升级(同时提醒一下,如果你还没有使用 Rails 1.2.x,你将不会自动获得错误修复,需要自己回溯修复)。这是一个“即插即用”的替换,不需要更改运行 1.2.× 的应用程序。
尽情享用!