true, :required => tr-6ren">
gpt4 book ai didi

ruby-on-rails - 将日期时间拆分为两个单独的表单字段 (RAILS)

转载 作者:数据小太阳 更新时间:2023-10-29 08:35:54 24 4
gpt4 key购买 nike

问题:如何将日期时间拆分为两个单独的表单域?

我有以下内容:

<%= f.label :Borrowed, "Check Out Date*" %></td>
<%= f.date_field :Borrowed, :id => "datepicker", min:Date.today, :ignore_time => true, :required => true %></td>

<%= f.label :Borrowed, "Check Out Time*" %>
<%= f.time_field :Borrowed, min:"9:00 AM", max: "4:30 PM", default:"10:00 AM", :ignore_date => true, :required => true%>

<td><%= f.label :Returned, "Check In Date" %>
<td><%= f.date_field :Returned, :id => "datepicker", min:Date.today, :ignore_time => true, :required => true %>

<td><%= f.label :Returned, "Check In Time*" %>
<td><%= f.time_field :Returned, min:"9:00 AM", max: "4:30 PM", default:"10:00 AM", :ignore_date => true, :required => true%>

我的数据库中有两个日期时间字段:借用和归还。我想拆分日期和时间,以便用户可以使用 jQuery 脚本从日历中选择日期。 (这可能是问题所在...)当我填写并提交表格时,时间会正确保存,但借用和归还的日期相同。

在数据库中它看起来像这样:

Returned: 2016-12-09 15:00:00 -0800
Borrowed: 2016-12-09 10:00:00 -0800

jQuery

$('#datepicker').datepicker({format: 'dd/mm/yyyy'});

gem

gem 'bootstrap-timepicker-rails'
gem 'bootstrap-datepicker-rails'

最佳答案

你不能有两个具有相同名称的字段,例如:

<%= f.date_field :Borrowed, :id => "datepicker", min:Date.today, :ignore_time => true, :required => true %></td>
<%= f.time_field :Borrowed, min:"9:00 AM", max: "4:30 PM", default:"10:00 AM", :ignore_date => true, :required => true%>

这样做肯定会给你一个字段的值,同名字段的值将被覆盖。

您可以通过以下两种方式实现您的愿望:

1) 修改表格中的列

您的表中可能有两列来存储两个值:日期和时间。 Rails 提供以下两种数据类型来存储日期和时间。

add_column :table_name, :borrowed_date, :date # It will store day, month & year.
add_column :table_name, :borrowed_time, :time # It will store hours, minutes & seconds.

2) 使用date_field_tag & time_field_tag

在这种情况下,您必须承担责任,而不是依赖 form_for 为我们生成值。

<%= date_field_tag :borrowed_d # other options %>
<%= time_field_tag :borrowed_t # other options %>

现在,Rails 不会提示列的存在:borrowed_d & borrowed_t,同时,它也不会保存这些列的值.因此,在您的 Controller 中,现在您需要手动获取 borrowed_dborrowed_t 的值,将它们合并为一个,然后将其保存为 borrowed 在数据库中。

不仅如此,在编辑 ActiveRecord 对象的情况下,您还必须从 borrowed 中收集两个值,并将它们显示在表单中。

关于ruby-on-rails - 将日期时间拆分为两个单独的表单字段 (RAILS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070926/

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