Рельсы 3 Formtastic. Как сделать так, чтобы в форме отображались только поля месяца и года БЕЗ дня? - PullRequest
5 голосов
/ 28 января 2012

Мне нужен formtastic для отображения только полей месяца и года, БЕЗ полей дня.

Средство выбора даты неплохое, но показывает весь календарь.Я не хочу сборщика даты.f.input :accounting_month, :label => "Accounting month", :as => :datepicker

Все, что мне нужно, это месяц и год.

Ответы [ 4 ]

5 голосов
/ 27 июля 2012

Есть способ сделать это:

<%= f.input :accounting_month, :label => "Accounting month", :order => [:month, :year]

Это автоматически скроет ввод "день" и присвоит ему значение по умолчанию 1.

4 голосов
/ 11 ноября 2013

попробуйте

f.input :accounting_month, :as => :date_select, :discard_day => true 
2 голосов
/ 28 января 2012

Это не работает таким образом, потому что без дня это подразумевает 28-31 (в зависимости от месяца) дней, и это может быть любой из них.Если вы хотите сохранить выбор месяца-года без дня, вы увидите, что это диапазон дат, а не «а».

Совет с датами - всегда сохранять всю дату как поле даты.Если вы знаете только месяц и год, вам нужно иметь два (без даты) поля, по одному для каждого.Но, как вы видите, это сильно вас потеряет, и вам нужно будет индивидуально обработать каждое поле, проверить его и т. Д. Серьезная боль, поэтому для этого требуется довольно веская причина.Я могу предложить следующее: создать скрытый div или применить css, если вы не можете «попасть внутрь» стандартного поля даты в форме для «дня».Затем установите значение всегда равным 01. Тогда у вас может быть набор полей 'date', который сохранит 01-месячный год в базе данных.Это определенно «хак»!

0 голосов
/ 17 апреля 2018

С новым синтаксисом в Ruby 1.9

f.input :date, as: :date_select, discard_day: true
...