Как отформатировать поле datetime в форме Ruby on Rails ActiveAdmin?


Я использую Ruby 2.1 и Rails 4.1. Я установил ActiveAdmin (1.0.0.pre2). Я хочу отформатировать поле datetime expires_at в форме ActiveAdmin. Я попробовал это в /app/admin/job.rb, используя опцию jQuery datepicker:

f.input :expires_at, as: :datepicker, datepicker_options: { date_format: "yy-mm-dd", min_date: Time.to_s + "+7D" }
Он отлично работает в виде нового режима /admin/jobs/new, но не работает в режиме редактирования /admin/jobs/xx/edit. Он всегда показывает значение из БД, например 2015-11-06 15:10:00 UTC.

Я также пробовал с :value, но это тоже не работает.

f.input :expires_at, :value => :expires_at.try(:strftime, '%Y-%m-%d'), as: :datepicker, datepicker_options: { min_date: Time.to_s + "+7D" }

У меня также есть следующая конфигурация в /config/locales/en.yml. Однако я считаю, что это не влияет на такие поля формы datetime.

en:
  date:
    formats:
      long: "%Y-%m-%d"
  time:
    formats:
      long: "%Y-%m-%d %H:%M"
1 4

1 ответ:

Согласно этому так называемому вопросу, атрибут value должен быть обернут с input_html в formtastic.

f.input :expires_at, :input_html => { :value => f.object.expires_at.try(:strftime, '%Y-%m-%d') }