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>
 

commit

blog comments powered by Disqus