С помощью списка рассылки simple_form я наконец получил его.
Пользовательский ввод выглядит так:
class CustomDateInput < SimpleForm::Inputs::Base
def input
"#{@builder.text_field("day", input_html_options)}".html_safe +
"#{@builder.text_field("month", input_html_options)}".html_safe +
"#{@builder.text_field("year", input_html_options)}".html_safe
end
#Makes the label target the day input
def label_target
"day"
end
end
День, месяц и год - это виртуальные атрибуты, которые необходимо создать.
Я добавил их в модуль, чтобы их можно было смешивать в моих моделях.
Модуль выглядит так:
module Extensions
module DateFields
attr_accessor :day, :month, :year
def fulldate
Date.parse("#{@day}-#{@month}-#{@year}")
end
end
end
Теперь в моих моделях я могу сделать это:
class Profile < ActiveRecord::Base
belongs_to :user
before_save :update_birthday
include Extensions::DateFields
private
def update_birthday
unless fulldate == true || nil?
self.birthday=fulldate
end
end
end