私は配列とハッシュを持っています。配列には日付が含まれ、ハッシュにはキーとしての日付と値としてのfloat(revenue_green)が含まれます。配列とハッシュを日付で組み合わせる方法
@reporting_dates = @month_ends.find_all {|e| e < @current_reporting_date.to_s } <<
@current_reporting_date
そして、私のハッシュ::私は次のように出力できます
@revenue_green = @reports_at_reporting_dates.sum('revenue_green')
:@reporting_dates
の二つの日付について
@reporting_dates: ["2017-01-27", "2017-02-24", Fri, 10 Mar 2017]
@revenue_green: {Fri, 10 Mar 2017=>7.0}
を(2017から01
この
は私の配列です-27および2017-02-24)@revenue_green
には値がありません。
私は私に次のような出力を与えるハッシュ作成したい:なしrevenue_green
が、それは私がそれをどのように行うことができます0
を置くべき存在しないすべての日付のためにそう
@new_hash: {2017-01-27 => 0, 2017-02-24 => 0, 2017-03-10 => 7.0}
を?
UPDATE
@month_ends = ["2017-01-27", "2017-02-24", "2017-03-31", "2017-04-28",
"2017-05-26", "2017-06-30", "2017-07-28", "2017-08-25",
"2017-09-29", "2017-10-27", "2017-11-24", "2017-12-29"]
@all_dates = (Date.new(@reporting_year).
beginning_of_year..1.month.from_now).
to_a.reverse.select { |day| day.wday == 5 }
@current_reporting_date = @all_dates.select { |d| d <= Date.today }.first
@all_reports = Report.all
@reports_at_reporting_dates = @all_reports.where(:day => @reporting_dates).order(:day)
回答を編集してコードサンプルを画像としてではなくテキストとして挿入できますか? – mysmallidea
ok私はコードで私の質問を更新しました。 – Oliver
「[mcve]」をお読みください。問題を再現する最小限のコードが必要です。 '@ month_ends'、' @ current_reporting_date'、および '@ reports_at_reporting_dates'は定義されていませんので、実行することはできません。 –