method

select_date

select_date(date = Date.current, options = {}, html_options = {})
public

Returns a set of html select-tags (one for year, month, and day) pre-selected with the date. It’s possible to explicitly set the order of the tags using the :order option with an array of symbols :year, :month and :day in the desired order. If you do not supply a Symbol, it will be appended onto the :order passed in.

If anything is passed in the html_options hash it will be applied to every select tag in the set.

Examples

  my_date = Time.today + 6.days

  # Generates a date select that defaults to the date in my_date (six days after today)
  select_date(my_date)

  # Generates a date select that defaults to today (no specified date)
  select_date()

  # Generates a date select that defaults to the date in my_date (six days after today)
  # with the fields ordered year, month, day rather than month, day, year.
  select_date(my_date, :order => [:year, :month, :day])

  # Generates a date select that discards the type of the field and defaults to the date in
  # my_date (six days after today)
  select_date(my_date, :discard_type => true)

  # Generates a date select that defaults to the date in my_date,
  # which has fields separated by '/'
  select_date(my_date, :date_separator => '/')

  # Generates a date select that defaults to the datetime in my_date (six days after today)
  # prefixed with 'payday' rather than 'date'
  select_date(my_date, :prefix => 'payday')

  # Generates a date select with a custom prompt. Use :prompt=>true for generic prompts.
  select_date(my_date, :prompt => {:day => 'Choose day', :month => 'Choose month', :year => 'Choose year'})
  select_date(my_date, :prompt => {:hour => true}) # generic prompt for hours
  select_date(my_date, :prompt => true) # generic prompts for all

1Note

the method to make 'day' disappear.

hechien ยท Jan 28, 2016

If you wanna show "year" and "month" only, you can use "order" to do it:

select_date(Date.current, order: [:year, :month])

That's it.