Как изменить end_of_week с помощью cweek - PullRequest
0 голосов
/ 11 октября 2018

Когда я использую .cweek, он возвращает недели по коммерческим неделям.Так, для моих недельных графиков, если я выберу start_date, который начинается, например, в четверг, данные группируются не по неделям с четверга по среду, а с четверга по воскресенье.

Знаете ли вы способсказать cweek, что конечный день недели равен выбранной дате, а не воскресению?

Я бы хотел что-то подобное, когда у вас есть объект даты, и вы установили date.beginning_of_week(start_day = :thursday)?

Большое спасибо!

РЕДАКТИРОВАТЬ:

Пример:

customer_signup_chart = {
        type: 'line',
        data: [],
        label: 'blabla'
}

users = User
        .where('created_at > :start_date AND created_at < :end_date',
          start_date: start_date.beginning_of_day,
          end_date: end_date.end_of_day)
        .select(:created_at, :typology)

start_day = start_date.strftime('%A').downcase.to_sym
datasets = { labels: (start_date.to_datetime..end_date.to_datetime).map {|date| date.beginning_of_week(start_day = start_day).strftime("From %d/%m to #{date.end_of_week(start_day = start_day).strftime('%d/%m')}")}.uniq}

users = users.group_by {|u| u.created_at.to_date.cweek}

loop do
   customer_signup_chart[:data] << (users[start_date.to_date.cweek] ? users[start_date.to_date.cweek].count {|u| u.typology == 'client'} : 0)
   start_date += 1.week
   break if start_date > end_date
end

Возвращает users group_by created_at на той же неделе, но для Ruby,эта же неделя с понедельника по воскресенье, а не с start_date до start_date - 1.day.

Я не знаю, понятнее ли это сейчас ..

РЕДАКТИРОВАТЬ 2:

Ну, это заставляет меня добавлять драгоценный камень только для четырех графиков, но я собираюсь использовать groupdate, это, вероятно, самый простой способ сделать это ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...