Novedades en Edge Rails #5
<table style="border:1px solid black;">
El desarrollo de Rails 2.3 sigue avanzando a buen ritmo. Veamos lo que ha ocurrido durante la última semana
Plantillas de aplicación
Rails incorpora ahora rg, el generador de aplicaciones de Jeremy McAnally. Esto significa que ahora tenemos la generación de aplicaciones por plantillas. Si tienes un conjunto de plugins que incluyes en todas las aplicaciones (entre otros muchos casos de uso), puedes simplemente configurar una plantilla una única vez y usarla una y otra vez cuando ejecutas el comando rails. commit
Mejoras en find
Hasta el venerable código que utiliza ActiveRecord para hablar con la base de datos se puede mejorar, y ha habido un par de ellas durante esta semana. En primer lugar, se le ha quitado un AS extra al SQL que se genera para precargar registros en las asociaciones has_and_belongs_to_many, que hace que funcione mejor con algunas bases de datos. También tenemos ahora la opción :having en find, (así como eh has_many y en has_and_belongs_to_many) para filtrar registros en los finds agrupados. Como saben los que tienen una buena base de SQL, esto permite filtrar basándose en los resultados agrupados:
developers = Developer.find(:all, :group => "salary", :having => "sum(salary) => 10000", :select => "salary")
Integración con Rack
Continúa la mejora de la integración de Rails con Rack. Esta semana se vio la muerte del venerable procesador de CGI dentro de Rais, así como el uso de Rack para despachar FCGI. También hubo algo de refactorización en los tests de Rails para que se lleven mejor con Rack. commit commit
Limpieza del archivo de configuración
A lo largo de los años, el fichero environment.rb ha quedado un poco abarrotado con cometarios, documentación varia y configuración que la mayor parte de la gente no necesita. David Heinemeir se tomó unos minutos para limpiar un poco y el estado actual es mucho más ordenado. Como parte de la limpieza, la configuración del almacenamiento de sesiones ha sido movida a su propio fichero commit
Adiós a los scripts de procesos
Si eres uno de los (pocos) desarrolladores de Rails que despliega sus aplicaciones en un entorno que depende los scripts inspector, reaper, y spawner, tienes que saber que estos scripts ya no vienen incluidos con el core de Rails porque son un bagaje innecesario para las aplicaciones modernas que se despliegan con alternativas como Passenger. Pero si te hacen falta, puedes conseguir copias con el plugin irs_process_scripts. commit
Otros
El que Rails compruebe la falsificación de IPs puede ser una molestia en los sites que tienen mucho tráfico de usuarios con teléfonos móviles porque sus proxies por lo general no ponen las cosas bien. Si este es el caso, se puede configurar ActionController::Base.ip_spoofing_check = false para desactivar esta comprobación. commit
Rails.root devuelve ahora un objeto Pathname, lo que quiere decir que puedes usarlo directamente con el método join para limpiar el código que utilice File.join. commit
ActionController::Dispatcher implementa ahora su propio stack de middleware, que puedes ver lanzando rake middleware. commit
La carga de gemas se porta mejor con las dependencias no satisfechas. commit
Ahora auto_link aplica adecuadamente las opciones como :target y :class a los enlaces a direcciones de correo. commit
