本周,我们在 Edge Rails 中看到了 35 次提交,其中许多都是错误修复和一些小事。下面是如何预览一些最近和重大变更。
Rails 现在可以提供本地化视图,具体取决于设置的区域设置。例如,假设您有一个具有 `` show`` 操作的 `Posts` 控制器。默认情况下,这将呈现 `app/views/posts/show.html.erb`。但如果您设置 `I18n.locale = :da`,它将呈现 `app/views/posts/show.da.html.erb`。如果未提供本地化模板,将使用未装饰的版本。Rails 还包括 `I18n#available_locales` 和 `I18n::SimpleBackend#available_locales`,它们返回当前 Rails 项目中可用的翻译数组。
MySQL 在其连接中支持重连标志,如果将其设置为 true,则如果连接丢失,客户端将在放弃之前尝试重新连接到服务器。您现在可以在 `database.yml` 中为 MySQL 连接设置 `reconnect = true`,以便从 Rails 应用程序获取此行为。默认值为 `false`,因此现有应用程序的行为不会改变。
为了让在 JRuby 上使用 Rails 的人更轻松,Active Record 现在包括许多可通过 JDBC 访问的数据库的测试任务:Derby、H2、hsqldb、MySQL、PostgreSQL 和 sqlite3(后三个也可以通过非 JDBC 连接提供,如您所知)。您需要安装该数据库、activerecord-jdbc-adapter gem 和为要测试的数据库专门设计的 activerecord-jdbcdatabase-gem。然后,您可以这样运行测试:`jruby -S rake test_jdbcmysql` (当然也可以为其他适配器进行类似的测试)。
这一项首次出现在几周前,但由于最初实施时出现了一些问题而被撤销。幸运的是,问题已解决,Rails 2.3 将包含对 HTTP Digest 身份验证的内置支持。Ryan Daigle 发布了一些 示例代码。
Action View 已经有一堆帮助程序来帮助生成选择控件,但现在又增加了一个:`grouped_options_for_select`。这个接收一个字符串数组或哈希,并将其转换为包含在 `optgroup` 标签中的 `option` 标签字符串。例如
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>