加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:28:36 所属栏目:百科 来源:网络整理
导读:我正在尝试在我的表单中创建一个时间字段.我这样做: %= f.time_select :end_time,minute_step: 5,include_blank: true % 但是,当提交时,由于使用time_select自动提交默认日期信息,这就是params的样子: end_time(1i):’2000′ ??end_time(2i):’1′ ??end
我正在尝试在我的表单中创建一个时间字段.我这样做:

<%= 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

是否有任何修复/锻炼能够有一个可选的时间字段?我在控制器中试过这个:

if params[:event][:end_time] && params[:event][:end_time][:hour].blank? && params[:event][:end_time][:minute].blank?
  params[:event][:end_time] = nil
end

但它似乎没有用.

任何帮助表示赞赏!

解决方法

你的参数不是[:event] [:end_time],它们是:

[:event] [‘end_time(1i)’] .. [:event] [‘end_time(5i)’].

使param值为nil无济于事,你需要从params散列中拒绝该键;例如

params [:event] .except(‘end_time(4i)’,’end_time(5i)’)如果params [:event] [‘end_time(4i)’].空白?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读