Novedades en Edge Rails #12
| Nota: Esta entrada es una traducción de la publicada el 31 de Enero de 2009 por Mike Gunderloy en el blog de Ruby on Rails. |
La semana pasada vimos 35 entregas en la rama edge de Rails, si bien la mayoría son correcciones de errores y otros asuntos menores. Veamos los cambios recientes más significativos.
Vistas localizadas
Rails ahora puede proporcionar vistas por idioma dependiendo de la localización que hayamos configurado. Por ejemplo, supongamos que tenemos un controlador Posts con una acción show. Por defecto, mostrará
app/views/posts/show.html.erb, pero si hacemos I18n.locale = :es, mostrará app/views/posts/show.es.html.erb. Si la plantilla traducida no está presente se utilizará la versión normal. Rails también incluye I18n#available_locales y I18n::SimpleBackend#available_locales que devuelven un array con las traducciones disponibles en el proyecto actual. commit, commit
Recuperación de conexiones MySQL
MySQL soporta una bandera de reconexión en su conexiones. Si se activa el cliente antes de devolver un error cuando se pierda una conexión intentará volver a conectarse. Ahora podemos poner reconnect = true en nuestras conexiones MySQL en database.yml para tener este comportamiento en las aplicaciones Rails. Por defecto el valor es falso, por lo que el comportamiento de las aplicaciones existentes no se verá modificado. commit
Tests de JDBC más sencillos
Para hacer más fácil la vida de los que utilizan Rails en JRuby, ActiveRecord incluye ahora tareas de test para un puñado de bases de datos a las que nos podremos conectar con JDBC: Derby, H2, hsqldb, MySQL, PostgreSQL, and sqlite3 (las tres últimas, como sabemos, pueden ser utilizadas mediante conexiones no JDBC). Necesitaremos tener la base de datos, la gema activerecord-jdbc-adapter y la gema específica activerecord-jdbcdatabase-gem para la base de datos que estamos probando. Tras esto ya podremos lanzar tests así: jruby -S rake test_jdbcmysql commit
Autenticación HTTP-digest
Este cambio apareció hace un par de semanas pero se le dió marcha atrás debido a algunos problemas con la implementación inicial. Afortunadamente se resolvieroin estos problemas y Rails 2.3 verá la luz con soporte de autenticación HTTP-Digest. Ryan Daigle ha publicado código de ejemplo commit
Método helper grouped_options_for_select
ActionView ya tiene muchos helpers para generar controles con menús de selección, pero ahora hay uno más: grouped_options_for_select, que acepta un array o hash de cadenas y las convierte en una cadena de etiquetas option rodeadas de etiquetas optgroup. Por ejemplo:
grouped_options_for_select([["Hats", ["Baseball Cap","Cowboy Hat"]]], "Cowboy Hat", "Choose a product...")
que devuelve
<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>
