Ruby

Obtener registros previos/siguientes con ActiveRecord

Según se vaya avanzando en un proyecto, es posible que nos veamos en la necesidad de encotrar los registros vecinos para el que estemos utilizando en un momento dado. De este modo, por ejemplo si uno esta posicionado en un registro y desea obtener el siguiente, tener algo como "next" o "previous" sería muy útil.

Acts_as_ordered es un plugin interesante para obtener los registros previos o siguientes a uno determinado.Es muy versatil y potente. Se puede descargar de aquí.

Para mi cuestiones particulares, lo resolví a lo bestia, incluyendo estos dos métodos en la clase que los requería.

  1. def self.previous id
  2. prev_id= self.minimum(:id, :conditions => ['id > ?', id])
  3. self.find(prev_id)
  4. end
  5.  
  6. def self.next id
  7. next_id=self.maximum(:id, :conditions => ['id < ?', id])
  8. self.find(next_id)
  9. end

Saludos

Inspirado de un reply en Duane's Brain

Creando consultas ActiveRecord a partir de SQL

Buscando la razón por la cual me falla un find_each dentro de un rake, me encontré con este sitio que sin dudas no deja de ser interesante. Suele pasar que tenemos en claro como construir una sentencia SQL pero no sabemos como hacerlo en ActiveRecord. Este pequeño script lo resuelve. Lo estuve probando y hay casos en los que no devuelve nada, como ser pasando rangos con BETWEEN, por ejemplo.

  1. select * from members where first_name = 'Harold' and age = '34'
  2. => Members.find(:all, :conditions => {:age => "34", :first_name => "Harold"}
  3.  
  4. select * from members
  5. => Members.find(:all)
  6.  
  7. select * from members where first_name = 'Harold'
  8. => Members.find(:all, :conditions => {:first_name => "Harold"}
  9.  
  10. select * from members where first_name like '%Harold%'
  11. => Members.find(:all, :conditions => ["first_name like ?", '%Harold%'])

Conectando Rails a múltiples bases de datos

Entre las cosas con que un desarrollador se encuentra a lo largo de los proyectos, es con la tarea de integrar viejas y nuevas tecnologías, para construir algo nuevo y distinto. Este puede ser el caso de quienes tienen que integrar un AS/400 con un MS SQL Server, u o bien de aquellos que se ven en la necesidad de incorporar bases de datos preexistentes y de diversos tipos para darles un tratamiento adecuado. De este modo, por ejemplo, es usual que se pretenda compartir información en bases de datos locales mediante interfaces web. Para este caso, existen herramientas de desarrollo que permiten hacerlo, como ser Java, o en mi caso en particular, Rails.

Usar fb_adaptor con versiones viejas de Interbase

Como comenté en el update de post anterior respecto de como usar Firebird con JRuby , me era imposible insertar registros con sentencias sql, por lo que tuve que revisar otras opciones.

Intenté compilar el adaptador fb en JRuby sin éxito por tener dependencias nativas, por lo que decidí intentar con Ruby Enterprise Edition.

Ruby te ayuda a escuchar a Dolina!

De la mano de dos genios, uno es /JK y Gastón Ramos, pasteo este singular y sencillo script que descarga los episodios de "La venganza será terrible" de Alejandro Dolina. La razón de esto es que al parecer a /Jk le pareció correcto tirar por la borda su antiguo blog en favor de un proyecto que se encuentra emprendiendo.

Ya está disponible la edición Agosto/08 de "The Rubyist"

Juixe TechKnow ha lanzado la edición Agosto de The Rubyist, una colección de los más relevantes artículos del mundillo Ruby y agregados.

The Good

ActiveRecord conoce a NeverBlock

Luego del revuelo que provocó la salida de NeverBlock a la comunidad de desarrollo Ruby/Rails, hubo gente que se dedicó a reimplementar ActiveRecord utilizando los beneficios de NeverBlock. Al día de la fecha, ActiveRecord solo incluye el adaptador neverblock-postgresql-adapter. Esta solución le permite a ActiveRecord realizar consultas en paralelo, como si se tratase de un sistema de multihilo, pero a diferencia de estos, tiene ciertas ventajas:

Escalando Rails con NeverBlock y DBSlayer

Actualmente se está hablando mucho de los problemas de escalabilidad de Rails, dado el caso de Twitter en primera instancia, y las posibles soluciones. Los detractores afirman que Rails es un corset en este sentido y que su arquitectura interna es bastante inflexible, si bien el principal problema no es del framework sino del lenguaje en si, ya que MRI 1.8.x no incorpora la gestión eficiente de multithreading.

Tutorial de Migrations en Español

Como lo prometido es deuda, cumplo en publicar el tutorlal en español de Migrations. Agradezo a Pablo Martinez por su invaluable ayuda. Que lo disfruten. Pueden descargarlo desde aqui.

Tutorial de ActiveRecord en español

Siguiendo con las traducciones, esta vez pongo a disposición el capítulo en castellano de ActiveRecord del curso TrainerOnRails. Espero que les sea de tanta utilidad como lo ha sido para mí. Agradezco el invaluable esfuerzo editor de Pablo Martinez. En la próxima entrega estará disponible el tuto de Migrations. 
El tuto se descarga aquí.

Distribuir contenido