2012-05-30 4 views
6

Estoy buscando utilizar Ice Cube https://github.com/seejohnrun/ice_cube para eventos recurrentes. Mi pregunta es, si luego necesito obtener cualquier evento que caiga dentro de un período de tiempo dado (por ejemplo, en un día o dentro de una semana), ¿hay alguna mejor manera de recorrerlos todos de esta manera?Recuperación eficiente de horarios ice_cube para un período de tiempo dado

items = Records.find(:all) 
items.each do |item| 
    schedule = item.schedule 
    if schedule.occurs_on?(Date.new) 
     #if today is a recurrence, add to array 
    end 
end 

Esto parece terriblemente ineficiente, pero no estoy seguro de qué otra manera de hacerlo.

+0

¿Qué terminaste haciendo al respecto? Estoy atascado en el mismo lugar? Gracias – loloso

Respuesta

4

Ese es un enfoque, pero lo que la gente hace más a menudo es terminar desnormalizando sus horarios en un formato que es convenientemente cuestionable.

Puede tener una colección llamada algo así como ScheduleOccurrences - que compila cada semana/y luego consultar en su lugar.

Desafortunadamente, tiene que funcionar de esta manera, pero apegarse a la forma de administrar calendarios de iCal ha llevado a IceCube a formatear sus datos de ciertas maneras (específicamente las que se pueden alinear con los requisitos de iCal RFC).

He estado pensando recientemente acerca de cómo se vería una biblioteca que sacudió algunas de esas restricciones, para una mayor flexibilidad como esta, pero definitivamente todavía está un poco apagado.

Espero que esto ayude

+0

Gracias, John. Pero, ¿qué sucede cuando el usuario navega en el calendario la semana que viene? – 99miles

+0

¿Tal vez podrías generar ScheduleOccurrences a medida que se necesiten? Entonces, si alguien solicita el cronograma de la próxima semana, el servidor podría guardar las filas. Actualmente estoy tratando de averiguar cómo hacer eventos repetitivos en mis rails ap ... – mscriven

Cuestiones relacionadas