gpt4 book ai didi

datetime - Rails 中单独的日期和时间表单字段

转载 作者:行者123 更新时间:2023-12-03 07:19:16 27 4
gpt4 key购买 nike

我有一个 ActiveRecord 模型 Event,其中包含日期时间列 starts_at。我想提供一个表单,其中 starts_at 的日期和时间是单独选择的(例如 "23-10-2010" 代表日期,"18:00 “ 时间)。这些字段应由单列 starts_at 支持,并且验证最好也应针对 starts_at

我当然可以使用虚拟属性和 Hook ,但我想要一个更优雅的解决方案。我尝试过 composed_of ( rdoc ) 和 attribute-decorator ( lighthouse discussion , github ),但没有成功。

下面是我想要的粗略轮廓..

class Event < ActiveRecord::Base
validates_presence_of :start_date
end

# View
# On submission this should set start_date.
form_for @event do |f|
f.text_field :starts_at_date # date-part of start_date
f.text_field :starts_at_time_of_day # time-of-day-part of start_date
f.submit
end

感谢任何帮助。

最佳答案

View 中必须有一个 text_field 吗?

据我所知,您可以有一个 date_time 字段,然后只需使用两个不同的输入字段来设置该字段的不同部分。

form_for @event do |f|
f.date_select :starts_at
f.time_select :starts_at, :ignore_date => true
f.submit
end

由于 Rails 日期和时间选择助手设置了五个不同的参数(starts_at(1i) 表示年份部分,2i 表示月份部分,依此类推),这意味着 date_select 只为日期部分设置它们,而如果将 :ignore_date => true 传递给 time_select,它只会设置小时和分钟部分。

如果您必须有一个text_field,我不知道该怎么做,但在发送表单之前设置日期时间参数之前可以使用一些 jQuery 魔法。

关于datetime - Rails 中单独的日期和时间表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3677531/

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