Ruby on Rails group_by_week

0

Я пытаюсь создать запрос, в котором я группирую свои элементы по неделям. Что-то вроде:

<%= line_chart @goals.map { |goal|
{name: goal.name, data: goal.feats.group_by_week(:created_at).count}
} %>

Я использую mysql db, поэтому я думаю, что 'trunc (' week ', element)' не работает для меня.

Я также пытался работать с "groupdate gem", но поскольку я не работаю с "utc", это также дало мне ошибку.

Не могли бы вы мне помочь?

  • 0
    Не могли бы вы добавить новый столбец с датой, а не с датой и временем?
Теги:
grouping

2 ответа

0

Попробуйте сыграть с этим:

by_week = goal.feats.group_by {|feat| feat.created_at.strftime('%W')}

Это возвращает хеш, сгруппированный по неделям, где каждый ключ - номер недели (подробности здесь).

Затем вы можете подсчитать, сколько значений для каждого ключа:

by_week.map {|_k , v| v.length }

Который возвращает массив счетчиков

0

Вы пытались установить часовой пояс Groupdate?

Groupdate.time_zone = "Pacific Time (US & Canada)"

см. документы

  • 0
    Я получаю эту ошибку :::
  • 0
    Groupdate :: Error: ActiveRecord :: Base.default_timezone должен быть: utc, чтобы использовать Groupdate

Ещё вопросы

Сообщество Overcoder
Наверх
Меню