在ActiveAdmin中,datetime类型的表单输入默认情况下会显示为日期和时间的选择器,但是在表单提交时,它们的值并不是按预期发送的。这是因为ActiveAdmin将日期和时间的选择器分为两个单独的字段,而不是一个完整的datetime字段。
要解决这个问题,你可以使用ActiveAdmin的自定义表单输入方法,将日期和时间字段组合成一个datetime字段。以下是一个代码示例:
# 在你的ActiveAdmin资源文件中定义自定义表单输入方法
form do |f|
f.inputs do
f.input :name
f.input :start_time, as: :datetime_picker
f.input :end_time, as: :datetime_picker
end
f.actions
end
# 在app/assets/javascripts/active_admin.js文件中添加以下代码
//= require active_admin/base
//= require activeadmin_addons/all
$(document).ready(function() {
$('.datetime_picker').datetimepicker({
format: 'YYYY-MM-DD HH:mm:ss'
});
});
在这个示例中,我们使用了ActiveAdmin的as: :datetime_picker
选项来指定表单字段的类型为datetime_picker。然后,在active_admin.js
文件中,我们使用了datetime_picker
插件将日期和时间字段组合成一个datetime字段,并设置了日期和时间的格式。
这样,当你在ActiveAdmin中使用datetime类型的表单输入时,它们的值将按预期发送。