1
私はその目的を達成するためにいくつかのコードをハッキングしましたが、非常にclunky /非効率です。多くのエントリーの表から、それぞれには月と年の文字列が関連付けられています。「2016年9月」などです。これらから、ドロップダウン選択フォームで使用される月とその頻度の時間順配列を作成します:['Novemeber 2016 (5)」、「2016年9月(5)」)。Rubyコードの効率:month + frequencyのハッシュをフォーマットされたソート済み配列
@months = []
banana = Post.pluck(:month)
#array of all months posted in, eg ['September 2016', 'July 2017', etc
strawberry = banana.each_with_object(Hash.new(0)){|key,hash| hash[key] += 1}
#hash of unique month + frequency
strawberry.each { |k, v| strawberry[k] = "(#{v.to_s})" }
#value into string with brackets
pineapple = (strawberry.sort_by { |k,_| Date.strptime(k,"%b %Y") }).reverse
#sorts into array of months ordered by most recent
pineapple.each { |month, frequency| @months.push("#{month}" + " " + "#{frequency}") }
#array of formatted months + frequency, eg ['July 2017 (5)', 'September 2016 (5)']
私はここでRubyの達人のいくつかは、このコードを改善するためのいくつかの方法で私に助言することができ期待していました。どんなアイデアや提案も大歓迎です!
ありがとうございます!