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…

Emails con Adjuntos

Mandar emails con archivos adjuntos es muy facil con Rails y attachment_fu (o PaperClip). Hace poco tuve que hacerlo para una nueva sección en uno de nuestros sitios. La idea era que el usuario subiera una foto al servidor, donde la información se procesa y se manda por email a un administrador, con la foto adjunta.

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…

Mejoras para attachment_fu

Últimamente estuve trabajando en un proyecto que utiliza attachment_fu para adjuntar imágenes a un modelo y luego mandarlas por email. Este plugín puede ser muy últil, pero todavía le hace falta ser pulido un poco más. Uno de los problemas con los que me enfrenté es que, si un modelo se valida con validates_as_attachment pero el usario no escogió ninguna imagen para subir, los errores de validación devueltos por el plugin son muy poco comprensibles, además de ser innecesariamente numerosos (uno por cada uno de los campos: content_type, filename, size y otros). Leer más…

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.