【问题标题】:How to format datetime field in Ruby on Rails ActiveAdmin form?如何在 Ruby on Rails ActiveAdmin 表单中格式化日期时间字段?
【发布时间】:2016-01-08 23:08:15
【问题描述】:

我正在使用 Ruby 2.1 和 Rails 4.1。我安装了 ActiveAdmin (1.0.0.pre2)。我想在 ActiveAdmin 表单中格式化日期时间字段 expires_at。我使用 jQuery datepicker 选项在/app/admin/job.rb 中尝试了这个:

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下不行。它总是显示来自 db 的值,例如 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中也有如下配置。但是,我相信它不会影响此类表单日期时间字段。

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 activeadmin formtastic


    【解决方案1】:

    根据this SO question,value属性必须用input_html包裹在formtastic中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      相关资源
      最近更新 更多