Returns a select tag with options for each of the months January through December with the current month selected. The month names are presented as keys (what’s shown to the user) and the month numbers (1-12) are used as values (what’s submitted to the server). It’s also possible to use month numbers for the presentation instead of names — set the :use_month_numbers key in options to true for this to happen. If you want both numbers and names, set the :add_month_numbers key in options to true. If you would prefer to show month names as abbreviations, set the :use_short_month key in options to true. If you want to use your own month names, set the :use_month_names key in options to an array of 12 month names. Override the field name using the :field_name option, ‘month’ by default.
Examples
# Generates a select field for months that defaults to the current month that # will use keys like "January", "March". select_month(Date.today) # Generates a select field for months that defaults to the current month that # is named "start" rather than "month" select_month(Date.today, :field_name => 'start') # Generates a select field for months that defaults to the current month that # will use keys like "1", "3". select_month(Date.today, :use_month_numbers => true) # Generates a select field for months that defaults to the current month that # will use keys like "1 - January", "3 - March". select_month(Date.today, :add_month_numbers => true) # Generates a select field for months that defaults to the current month that # will use keys like "Jan", "Mar". select_month(Date.today, :use_short_month => true) # Generates a select field for months that defaults to the current month that # will use keys like "Januar", "Marts." select_month(Date.today, :use_month_names => %w(Januar Februar Marts ...))
Source Code
# File action_view/helpers/date_helper.rb, line 482 def select_month(date, options = {}) val = date ? (date.kind_of?(Fixnum) ? date : date.month) : '' if options[:use_hidden] hidden_html(options[:field_name] || 'month', val, options) else month_options = [] month_names = options[:use_month_names] || (options[:use_short_month] ? Date::ABBR_MONTHNAMES : Date::MONTHNAMES) month_names.unshift(nil) if month_names.size < 13 1.upto(12) do |month_number| month_name = if options[:use_month_numbers] month_number elsif options[:add_month_numbers] month_number.to_s + ' - ' + month_names[month_number] else month_names[month_number] end month_options << ((val == month_number) ? %(<option value="#{month_number}" selected="selected">#{month_name}</option>\n) : %(<option value="#{month_number}">#{month_name}</option>\n) ) end select_html(options[:field_name] || 'month', month_options.join, options) end end
<code/>and<pre/>for code samples.