Rails - return an array of months for a select tag
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)
Try this!
@months = [['-', '']]
(1..12).each {|m| @months << [Date::MONTHNAMES[m], m]}