Я создал пользовательское поле date_Select, используя 3 отдельных поля выбора:
<%= f.select :day, options_for_select(User::DAYS), :include_blank => "Day:" %>
<%= f.select :month, options_for_select(User::MONTHS), :include_blank => "Month:" %>
<%= f.select :year, options_for_select(User::YEAR_RANGE), :include_blank =>"Year:" %>
В моем User.rb (Модель) у меня есть это правило проверки, а также используется камень validates_timelessness:
MONTHS = ["January", 1], ["February", 2]..etc
DAYS = ["01", 1], ["02", 2], ["03", 3]..etc
START_YEAR = Time.now.year - 111
END_YEAR = Time.now.year
YEAR_RANGE = START_YEAR..END_YEAR
validates :birthday, :timeliness => {:on_or_before => lambda { Date.current }, :type => :date, :on_or_before_message => "Select a valid birthday"}
Я создал несколько тестов, которые прекрасно работают с date_select, который поставляется с rails, но этот date_select содержит ошибки, поэтому я выбрал собственный. Моя единственная проблема сейчас заключается в том, что я хочу, чтобы день, месяц и год работали с моим: днем рождения символом. Как объединить все 3, чтобы символ my: birthday мог использовать выбранные данные? Если это имеет смысл ...
Параметр date_select был бы идеальным, но он позволяет пользователям отправлять форму без указания даты, и если пользователь выбирает 1 на день и нажимает кнопку «Отправить», он автоматически выбирает январь. Я не нашел способ обойти это.
Так что я использую 3 отдельных поля выбора, с которыми я хочу объединить и сделать работу: день рождения точно так же, как и date_select.
Помощь приветствуется.