Tengo un alcance que consulta las llamadas de hoy. Basado en el alcance lo uso para contar la cantidad de llamadas de hoy.Consultar el rango de fechas en los raíles
Mis fechas se almacenan en UTC pero los rieles se convierten en mi zona horaria local. Lo que intento hacer es encontrar todas las llamadas entre hoy a las 00:00 y 23:59.
Alcance:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
salida IRB: (La llamada que las capturas debido a UTC)
irb(main):010:0> Call.last.transfer_date
Call Load (0.9ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> Sun, 07 Oct 2012 19:45:00 CDT -05:00
irb(main):011:0>
irb(main):011:0> Call.last.transfer_date.utc
Call Load (1.3ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> 2012-10-08 00:45:00 UTC
Estoy tratando de encontrar la manera de consulta sólo las llamadas que estaban entre las 00:00 y 23:59 por hoy. Hasta ahora, intentar enfocar con y sin utc, zone, etc. no funciona. Sigue tirando del alcance basado en UTC que incluye la llamada de ayer (ayer si está formateado con la zona horaria local).
¿Cómo puedo consultar entre las dos veces para obtener la salida correcta? Estoy perdido aquí.
puede por favor aclarar sus preguntas, por favor, significa qué modelo le dio alcance, y en el fondo usted no escribió hoy como alcance. –