Сгруппируйте одни и те же элементы и добавьте значения по умолчанию, если они не найдены. - PullRequest
0 голосов
/ 21 июня 2011

спасибо, что нашли время, чтобы прочитать мой вопрос.

Я собираю информацию для целей расчета:

...collect{|x| [x.calc_year,x.calc_month, x.amount]

Теперь я хочу иметь возможность поместить все значения 2010, 2011 в разные массивы, чтобы я мог легко получить значения длямесяцы.

например, год ["2011"] [1] или год ["2010"] [0] ..

И мой второй вопрос, скажем, у меня нет никакихинформация за 5-й месяц, я хочу иметь возможность ввести 0 для суммы и ввести данные за 5-й месяц.

спасибо

1 Ответ

0 голосов
/ 21 июня 2011

Вы можете использовать group_by

@information.group_by(&:calc_year).each do |year, calcs_for_year|

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

@information.group_by(&:calc_year).each do |year, this_years_info|

    unless previous_year.nil? # first time ignore

      (year - previous_year - 1).times do |i| 
          blank_year = previous_year + i
          # render your empty year figures/form
      end

    end

    # render year figures/form

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