Duplicar posibles:
Scoping date attribute for this week?Cómo alcance última semana por objeto Date
estoy tratando de alcance todos mis productos para esta semana, por lo que debe mostrar todos los productos líderes hasta cualquier día de la semana.
class Product < ActiveRecord::Base
attr_accessible :purchase_date
def self.last_week # All prices of last week.
where(:purchase_date => 1.week.ago)
end
create_table :products do |t|
t.date :purchase_date
end
end
Este código no representa nada en la vista, ¿qué debo corregir?
RESPUESTA
Por alguna razón he tenido que añadir advance(:days => -1)
a fin de recuperar también el lunes como así. Puede que no tengas que hacer esto sin embargo.
def self.last_week
where(:purchase_date => 1.week.ago.beginning_of_week.advance(:days => -1)..1.week.ago.end_of_week).order("purchase_date desc")
end
RESPUESTA ACTUALIZADO
que tenía que hacer la advance(:days => -1)
debido a la zona horaria que estoy. Me deshice de esto asegurándose de que estoy en mi propia zona horaria. Por lo que ahora puede ser normal como debe ser:
def self.last_week
where(:purchase_date => 1.week.ago.beginning_of_week..1.week.ago.end_of_week)
end
y debería funcionar correctamente sólo si vas por la zona por omisión rieles tiempo o config su propio:
app/config/Medio ambiente/desarrollo .rb
config.time_zone = "Eastern Time (US & Canada)"
Buena suerte.
sí para la fecha que se actualizan adecuadamente cada vez – apneadiving
Podría esto ir dentro del método definido? – LearningRoR
puede ir dentro del método, pero no necesitará la lambda entonces. Sigo creyendo que debes mantener el alcance – apneadiving