gpt4 book ai didi

ruby-on-rails - 带有 allow_blank 的可选 time_select 默认为 00 :00

转载 作者:行者123 更新时间:2023-12-04 18:12:23 24 4
gpt4 key购买 nike

我正在尝试将表单中的时间字段设为可选。我这样做:

<%= f.time_select :end_time, minute_step: 5, include_blank: true %>

然而,当它被提交时,由于 time_select 会自动提交默认日期信息,这就是 params 的样子:
end_time(1i): '2000'
end_time(2i): '1'
end_time(3i): '1'
end_time(4i): ''
end_time(5i): ''

Rails 将此解释为真实日期并将 end_time 设置为 00:00

是否有任何修复/锻炼能够拥有可选的时间字段?我在 Controller 中试过这个:
if params[:event][:end_time] && params[:event][:end_time][:hour].blank? && params[:event][:end_time][:minute].blank?
params[:event][:end_time] = nil
end

但它似乎不起作用。

任何帮助表示赞赏!

最佳答案

按照同样的思路,对我来说效果很好的是:

向 Controller 添加前置过滤器/操作

before_filter :filter_blank_end_time, only: [:create, :update]

创建过滤器
def filter_blank_end_time
if params[:event]['end_time(4i)'].blank?
params[:event]['end_time(1i)'] = ""
params[:event]['end_time(2i)'] = ""
params[:event]['end_time(3i)'] = ""
params[:event]['end_time(4i)'] = ""
params[:event]['end_time(5i)'] = ""
end
end

为所有字段传递空字符串似乎会在结束时间产生 NIL 值。

关于ruby-on-rails - 带有 allow_blank 的可选 time_select 默认为 00 :00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10851659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com