在 simple_form_for rails 中设置默认时间戳

setting default timestamp in simple_form_for rails

我的simple_form_for有字段

<div><%= f.input :start_time %></div>
<div><%= f.input :end_time %></div>

start_time 和 end_time 是我在 postgresql 中的数据库列 默认情况下,当我打开表单时,它会将当前时间作为默认时间作为选项的 select。 如何将屏幕排序中的默认时间 02:14(开始和结束时间的当前时间)设置为 00:00

UI 看起来像这样

数据库列

您最好在新的控制器方法中执行此操作:

def new
  @model = Model.new
  @model.start_time = Time.now.beginning_of_day
  @model.end_time = Time.now.beginning_of_day
end

如果我没记错的话,这应该将标准日期设置为今天,但是 00:00 小时。

两种方式:

1) 在初始化时设置实际属性值,在控制器操作中:

def new
  @event = Event.new(start_time: Time.now.beginning_of_day, end_time: Time.now.beginning_of_day)
end

2) 如果出于某种原因您不想更改实际属性,您可以只在视图中设置输入值。谨慎使用。

<div><%= f.input :start_time, input_html: {value: (f.object.start_time || Time.now.beginning_of_day) } %></div>
<div><%= f.input :end_time, input_html: {value: (f.object.end_time || Time.now.beginning_of_day)} %></div>