Rails - return an array of months for a select tag
Try this!
@months = [['-', '']](1..12).each {|m| @months << [Date::MONTHNAMES[m], m]}
Date::MONTHNAMES.each_with_index.collect{|m, i| [m, i]}=> [[nil, 0], ["January", 1], ["February", 2], ["March", 3], ["April", 4], ["May", 5], ["June", 6], ["July", 7], ["August", 8], ["September", 9], ["October", 10], ["November", 11], ["December", 12]]
Abbreviated selection with default option
Date::ABBR_MONTHNAMES.compact.each_with_index.collect{|m, i| [m, i+1]} .insert(0, ['Please Select', nil])=> [["Please Select", nil], ["Jan", 1], ["Feb", 2], ["Mar", 3], ["Apr", 4], ["May", 5], ["Jun", 6], ["Jul", 7], ["Aug", 8], ["Sep", 9], ["Oct", 10], ["Nov", 11], ["Dec", 12]]
You can use rails helper select_month, like:
select_month(Date.today)