Powiel możliwe:
Scoping date attribute for this week?Jak zakresu ubiegłym tygodniu przez obiekt Date
Próbuję zakresie wszystkich moich produktów w tym tygodniu, więc powinno pokazać wszystkie produkty czołowych do dowolnego dnia tygodnia.
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
Ten kod nic nie wyświetla w widoku, więc co muszę poprawić?
ODPOWIEDŹ
Z jakiegoś powodu musiałem dodać advance(:days => -1)
w celu również pobrać poniedziałek, jak również. Być może nie musisz tego robić.
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
AKTUALIZACJA ODPOWIEDŹ
miałem zrobić advance(:days => -1)
ponieważ strefy razem, gdy jestem w. Pozbyłem się tego, upewniając się, że jestem w moim Strefa czasowa. Więc teraz to może być normalne, jak powinno być:
def self.last_week
where(:purchase_date => 1.week.ago.beginning_of_week..1.week.ago.end_of_week)
end
i powinno działać poprawnie tylko jeśli przejdziesz przez domyślnej strefy Szyny czasu lub config własny:
app/config/Środowisko/rozwój .rb
config.time_zone = "Eastern Time (US & Canada)"
Powodzenia.
Tak na dzień zostać zaktualizowane prawidłowo za każdym razem – apneadiving
może to pójść wewnątrz zdefiniowanego sposobu? – LearningRoR
może wejść do metody, ale nie będziesz wtedy potrzebował lambda. Nadal uważam, że powinieneś zachować zakres – apneadiving