Я устанавливаю мировой часовой пояс для каждого пользователя, как это:Возможно ли запрашивать записи за определенный день с использованием указанного пользователем time_zone?
around_filter :user_time_zone, :if => :current_user
def user_time_zone(&block)
Time.use_zone(current_user.time_zone, &block)
end
Я создаю некоторые записи, и когда я осмотреть их, created_at поле, кажется, использует правильный TIME_ZONE, например, с «Каракаса "часовой пояс:
[#<TimeEntry:0x007f6658ed4e58
id: "89c12856-4180-41ba-be4c-e1d555cd4b5c",
description: "New timer",
created_at: Fri, 25 Mar 2016 11:51:43 VET -04:30,
updated_at: Fri, 25 Mar 2016 11:51:54 VET -04:30>,
#<TimeEntry:0x007f6658ed4d18
id: "8d8598e1-910d-4d89-898e-3de3cdf021c1",
description: "Connecting the timer hours with projects",
created_at: Fri, 25 Mar 2016 12:30:11 VET -04:30,
updated_at: Fri, 25 Mar 2016 12:30:11 VET -04:30>,
#<TimeEntry:0x007f6658ed4bd8
id: "29e67663-e538-41e3-ba4e-0d02d3431abc",
description: "Test completing 2 hours",
created_at: Fri, 25 Mar 2016 12:30:47 VET -04:30,
updated_at: Fri, 25 Mar 2016 12:31:08 VET -04:30>,
#<TimeEntry:0x007f6658ed4a98
id: "2260c971-c4e0-4ae0-97df-672cdeeac65a",
description: "Working on project details",
created_at: Fri, 25 Mar 2016 12:50:55 VET -04:30,
updated_at: Fri, 25 Mar 2016 12:50:55 VET -04:30>,
#<TimeEntry:0x007f6658ed4958
id: "bfe5189d-5124-47c9-ba6d-2f28a08e6c5f",
description: "Working",
created_at: Fri, 25 Mar 2016 19:44:07 VET -04:30,
updated_at: Fri, 25 Mar 2016 19:44:22 VET -04:30>,
#<TimeEntry:0x007f6658ed4818
id: "23b3fd5d-8be4-40b7-a9b9-d48e1fe6816d",
description: "New timer",
created_at: Sat, 26 Mar 2016 19:51:10 VET -04:30,
updated_at: Sat, 26 Mar 2016 19:51:41 VET -04:30>]
Имеются 5 записей в '2016-03-25' и 1 на '2016-03-26'. Я стараюсь, чтобы принести их в день, как это:
day = '2016-03-25'
@project.time_entries.where("date_trunc('day', created_at) = ?", day).count
Однако я получаю неправильные результаты, я получаю 4 записи на 25, 1 запись на 26 и более 1 по 27. Похоже, что поле created_at
использует по умолчанию time_zone (это UTC, и есть смещение «+4: 30» от time_zone, на котором я тестирую это).
Как я могу получить записи за определенный день, используя установленную вами time_zone?