Buscando con Searchlogic
Searchlogic es un plugin muy útil que nos permite buscar en modelos de forma mucho más ágil, por medio de named scopes (introducidos en Rails 2.x). Los named scopes (la mejor traducción no-literal que se me ocurre es: “filtros de alcance“) son básicamente filtros SQL con nombre, pero esto es más fácil de mostrar que de explicar. La principal ventaja de estos filtros es que nos permiten hacer nuestro código más DRY (Don’t Repeat Yourself, es decir: menos repetitivo), lo que a su vez acelera muchísimo el tiempo de desarrollo. Leer más…
Cómo Adjuntar Archivos a un Modelo en Rails
Paperclip es un plugin que permite adjuntar archivos de todo tipo a un modelo de ActiveRecord. Fue pensado para que su implementación sea lo más fácil posible y para que los archivos puedan ser tratados simplemente como un atributo más del modelo. Esto además significa que los cambios en el archivo son efectuados sólo una vez que ActiveRecord::Base#save es ejecutado, y que de la misma forma que con los demás atributos de ActiveRecord, también podemos realizar todo tipo de validaciones sobre el archivo. Leer más…
Cómo Autenticar Usuarios con Authlogic
El plugin Authlogic (de BinaryLogic) es un excelente recurso a la hora de facilitar la autenticación de usuarios en nuestros sitios web. Se caracteriza por ser muy fácil de configurar, utilizar y extender (existen otros plugins que le agregan funcionalidad, como Lockdown). Por supuesto, tiene un muy buen nivel de seguridad y muchas funcionalidades extremadamente útiles que, de hacerlas a mano, nos tomaría mucho tiempo implementar. Leer más…
Optimizando el uso de la Base de Datos: Relaciones
Ayer estuve tratando de optimizar el uso de la base de datos en uno de nuestros CMS. Observamos que cierta sección del sitio estaba haciendo alrededor de 60 queries a la base de datos por cada pedido de página. Aunque el volumen de la información era relativamente pequeño, el tiempo para encontrarla representaba el 44% del tiempo que el servidor tardaba en responder a cada pedido, que en ese momento promediaba los 0.6 segundos. Leer más…
Admin Namespaces
Los namespaces (“espacios de nombres” en español) en Ruby (y otros lenguajes de programación) son una utilidad que permite organizar nuestro código dentro de, justamente, espacios a los que les podemos “dar un nombre”. Muchas veces es posible encontrar modelos y controladores que tienen un namespace implícito en sus nombres, sólo que no lo implementan más que ahí – en donde es de muy poca utilidad. Leer más…