如何在Active Admin的Formtastic DateTime选择器中隐藏秒数?
解决Active Admin/Formtastic datetime picker不隐藏秒数的问题
你设置的:step => :hour参数未生效,是因为Formtastic的datetime_picker类型对应的HTML原生datetime-local输入框,需要用秒数数值作为step参数,而非符号。要实现仅选择日期、小时和分钟,可按以下方式修改代码:
fp.input :profiled_at, as: :datetime_picker, step: 60, size: 16, input_html: { value: Time.now.strftime("%Y-%m-%dT%H:%M") }
关键调整说明:
- 将
step从符号:hour改为数字60:HTML的datetime-local输入框以秒为单位定义步长,60秒对应1分钟,设置后控件会自动隐藏秒数选择区域,仅保留日期、小时和分钟。 - 调整初始值格式:用
strftime("%Y-%m-%dT%H:%M")生成不带秒的时间字符串,避免初始值带秒导致控件仍显示秒数部分。
如果你的项目使用的是第三方datetime picker插件(比如Active Admin常用的flatpickr),还可以通过input_html添加插件专属配置来强制隐藏秒数:
fp.input :profiled_at, as: :datetime_picker, step: 60, size: 16, input_html: { value: Time.now.strftime("%Y-%m-%dT%H:%M"), data: { enable_time: true, no_seconds: true } }
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

