Какой код в моем контроллере неверен при использовании group_by с гемом? - PullRequest
0 голосов
/ 17 декабря 2018

Вопрос: Как отобразить счетчик количества «заказов» на основе group_by (день, неделя, месяц)?

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

Контроллер

@clients = User.all.where(affiliate_id: current_affiliate)
@orders_e = Order.all.where(seller: @clients ).where(order_status: [2] )
....
@orders_week = @orders_e.all.group_by { |week|  week.created_at.beginning_of_week }
....
@orders_month_2 = @orders_e.all.group_by_month(:created_at)
@orders_day_2 = @orders_h.all.group_by_day(:created_at, last: 1)
@orders_week_2 = @orders_h.all.group_by_day(:created_at, last: 7)
....
@orders_week_count = @orders_week.values.sum

Просмотр:

<%= @orders_month_2.count.sum() %>

Вывод: ["2018-12-01 00:00:00 UTC", 18]

Когда я делаю это для group_by_day или group_by_week, это дает:

[Tue, 11 Dec 2018, 0, Wed, 12 Dec 2018, 0, Thu, 13 Dec 2018, 0, Fri, 14 Dec 2018, 0, Sat, 15 Dec 2018, 0, Sun, 16 Dec 2018, 0, Mon, 17 Dec 2018, 0] 

Что мне нужно, так это все сложенные "0".

Альтернатива У меня тоже есть работа:

view:

<% @clients.each do |user| %>
  <h3 class="center"><%= user.sales.where(order_status: [2] ).group_by_month(:created_at).count.sum() %></h3>
<% end %>

Вывод: [Сб, 01 декабря 2018, 18]

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

Как я могу получить информацию:

  • Заказы сегодня
  • Заказы на этой неделе
  • заказов в этом месяце

1 Ответ

0 голосов
/ 17 декабря 2018

Не удалось найти простой способ удаления информации о дате - способ, которым я «решил» это, создав цикл с разрывом, чтобы отображался только один результат.

<% @orders_day.each do |day, orders| %>
   <%= orders.count %>
   <% break if orders.first %>
<% end %>

Это в порядке DESCв контроллере.

Хотя это работает и месяцами, я не мог заставить его работать правильно с неделями.Может быть, часы на моих внутренних компьютерах были выключены, но ежедневные показывали бы 3, что правильно, а еженедельные показывали бы 1, что не имеет смысла.Код - это код, поэтому он как-то прав.

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

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