Rails - return an array of months for a select tag Rails - return an array of months for a select tag arrays arrays

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)