Я создаю приложение статистики бейсбола. У меня возникли проблемы с тем, чтобы игры были разделены на сезоны.Группировка игр по сезонам по году
Игра содержит битвы, качки и полевые игры. В игре также есть поле play_date, из которого я могу получить год.
В принципе, я хочу, чтобы иметь возможность разделить игры на сезоны и добавить столбцы в течение этого сезона.
Например, быть в состоянии сделать:
<% @player.each do |player| %>
<% player.battings.seasons.each do |battingseason| %>
<%= battingseason.total("homeruns") %>
<% end %>
<% end %>
Так «battingseason.total (» homeruns «)» будет суммировать общий homeruns, что конкретный игрок ударил в этом сезоне.
Я был в состоянии получить годы, какие игры играли через это:
@game_seasons = @games.group_by { |g| g.played_date.beginning_of_year }
... но я не уверен, что это так много помощи.
Оттуда, я также должен иметь возможность разделить сезоны на падение и весну. Например, что я в настоящее время:
def season
if self.game.played_date.month >= 9 && self.game.played_date.month <= 12
season = "fall"
else
season = "spring"
end
end
Так что моя проблема в том, что я просто не знаю, куда девать всю эту логику в контроллере, в модели? И как именно вывести его, спасибо!
Так ли это требуется создание новой таблицы, или просто новая модель и новый столбец в таблице игр. Кроме того, какие теги представлений выводят именно то, что я хочу, как в примере в вопросе. И делает ли это суммирование для каждого столбца внутри биттов, качки и полевых работ? Спасибо! –
Да, вам понадобится новый стол 'сезонов' и новый столбец' season_id' в таблице 'games'. Я буду обновлять свой ответ, чтобы включить код 'view'. Вы пытаетесь обобщить homeruns игроками или к сезону в первую очередь. Я имею в виду, вы хотите сначала подытожить homeruns игроком, а потом - сезон или наоборот? – AbM
Итак, есть игры, которые играли в 2012 и 2013 годах. Джон Доу сыграл 20 игр в 2012 году, и у него было только две игры, в которых он попал в гомерину. В сезоне 2012 года Джон Доу поразил 2 homeruns. Так сезон, затем статистика в течение сезона. –