ruby
1 this_month = Date.today.all_month 2 before_month=Date.today.last_month 3 profit_this_month = [] 4 profit_before_month = [] 5 notes_all.each do |note| 6 if this_month.include?(Date.parse(note[:created_at].to_s)) 7 profit_this_month << note.profit_and_loss 8 elsif before_month.include?(Date.parse(note[:created_at].to_s)) 9 profit_before_month << note.profit_and_loss 10 end 11 end 12 @profit_this_month= profit_this_month.sum 13 @profit_this_month_average = @profit_this_month / profit_this_month.length 14 @victory_rate_this_month = profit_this_month.where(values > 0).count/profit_this_month.count*100 15 @profit_before_month= profit_before_month.sum(:profit_and_loss) 16 @profit_before_month_average= @profit_before_month / profit_before_month.length 17 @victory_rate_before_month=profit_before_month.where(values > 0).count/profit_before_month.count*100
というコードです。
ruby
1@victory_rate_this_month = profit_this_month.where(values > 0).count/profit_this_month.count*100 2@victory_rate_before_month=profit_before_month.where(values > 0).count/profit_before_month.count*100
この部分でprofit_this_monthの中に入っている値の内0以上のものだけ取り出したいです。valuesではうまくいきませんでした。(当然ですが…)どのように条件指定すれば良いでしょうか??
profit_this_month.select{|v| v > 0 }
回答2件
あなたの回答
tips
プレビュー