이벤트가 만료되면 사라지는 이벤트 목록 앱을 만들었습니다. 예를 들어, 사용자가 콘서트가 오후 9 시부 터 11 시까 지 1 월 28 일에 진행되는 것을 볼 수 있습니다. 1 월 28 일 오전 12 시부 터 오후 10시 59 분까지 해당 이벤트가 표시됩니다. 오후 11시에 행사가 끝났습니다.Rails에서 beginning_of_day 메소드를 4 시간 오프셋하는 방법
나이트 클럽은 1 월 28 일 오후 10 시부 터 1 월 29 일 오전 2 시까 지 유사한 이벤트를 가질 수 있습니다. 현재, 1 월 29 일 오전 12시에 나이트 클럽 행사는 여전히 활동 중이지만 사라집니다.
이벤트가 특정 날짜에 있는지 확인하지만 이른 아침 이벤트를 반환하지 않는 범위가 있습니다.
scope :on, lambda {|date|
raw_sql = '("event_occurrences"."start_time" BETWEEN ? AND ?) OR ("event_occurrences"."end_time" BETWEEN ? AND ?)'
scope = includes(:occurrences)
scope.where(raw_sql, date.beginning_of_day, date.end_of_day + 4.hours, date.beginning_of_day, date.end_of_day + 4.hours)
}
나는 날이 그 이후로 갈 수있는 더 좋은 방법이 될 것입니다 오전 4시보다는 자정에 시작되도록 정확하게 (일부 여유와) 밤 문화를 반영 beginning_of_day 및 END_OF_DAY 방법을 재정의 생각합니다.
사용자가 "오늘"과 "내일"에 대한 이벤트를 볼 수 있으므로 사용자 경험이 향상됩니다. 1 월 29 일 오전 1시에 "오늘"은 나이트 클럽을 표시하지만, 1 월 29 일 오후 9시에 시작하는 콘서트도 표시합니다. 이러한 콘서트는 "내일"으로 표시되어야합니다.
이러한 메서드를 재정의하는 유틸리티 클래스를 어떻게 만들 수 있습니까?
그러나 이것은 4 시간의 시간을 상쇄하지 않습니까? 'beginning_of_day'와'end_of_day' 체인에'+4hours'를 추가하면 오른쪽으로 응답하지 않습니다. – BHOLT