2009年1月31日,星期六

本周 Edge Rails 动态

发布者 Mike Gunderloy

2009年1月24日 – 2009年1月30日

本周,我们看到了 edge Rails 中有 35 次提交 – 尽管很多是 bug 修复和一些小改动。这里是近期一些重要改动的一次预览。

本地化视图

Rails 现在可以根据您设置的 locale 提供本地化视图。例如,假设您有一个 Posts 控制器和一个 show action。默认情况下,这将渲染 app/views/posts/show.html.erb。但是,如果您设置 I18n.locale = :da,它将渲染 app/views/posts/show.da.html.erb。如果本地化模板不存在,则会使用未装饰的版本。Rails 还包括 I18n#available_localesI18n::SimpleBackend#available_locales,它们会返回当前 Rails 项目中可用的翻译数组。

提交
提交

重新连接 MySQL 连接

MySQL 在其连接中支持一个 reconnect 标志 – 如果设置为 true,则在连接丢失时,客户端会尝试重新连接到服务器,然后才放弃。您现在可以在 database.yml 中为您的 MySQL 连接设置 reconnect = true,从而使 Rails 应用程序获得此行为。默认值为 false,因此现有应用程序的行为不会改变。

提交

更轻松地测试 JDBC

为了让在 JRuby 上使用 Rails 的人更加轻松,Active Record 现在包含了一些可通过 JDBC 访问的数据库的测试任务:Derby、H2、hsqldb、MySQL、PostgreSQL 和 sqlite3(如您所知,后三个也可通过非 JDBC 连接获得)。您需要安装数据库、activerecord-jdbc-adapter gem 以及您正在测试的数据库的特定 activerecord-jdbcdatabase-gem。然后,您可以像这样运行测试:jruby -S rake test_jdbcmysql(当然,其他适配器也有类似的测试)。

提交

HTTP Digest 认证支持

这个功能最初出现在几周前,但由于初始实现存在一些问题而被回滚。幸运的是,这些问题已得到解决,Rails 2.3 将自带 HTTP Digest 认证的支持。Ryan Daigle 发布了一些 示例代码

提交

grouped_options_for_select 辅助方法

Action View 已经有许多辅助方法来帮助生成 select 控件,但现在又多了一个:grouped_options_for_select。这个方法接受一个字符串数组或哈希,并将其转换为一个包含 option 标签的字符串,这些标签被 optgroup 标签包裹。例如


 grouped_options_for_select([["Hats", 
   ["Baseball Cap","Cowboy Hat"]]], 
   "Cowboy Hat", "Choose a product...")

返回


 <option value="">Choose a product...</option>
 <optgroup label="Hats">
   <option value="Baseball Cap">Baseball Cap</option>
   <option selected="selected" value="Cowboy Hat">
     Cowboy Hat
   </option>
 </optgroup>

提交