在simple_form_for rails中设置默认时间戳

时间:2018-07-26 09:23:26

标签: ruby-on-rails ruby-on-rails-4 simple-form-for

我的simple_form_for有字段

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

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

UI看起来像这样   enter image description here

数据库列   enter image description here

2 个答案:

答案 0 :(得分:1)

您可能最好在controller方法中执行以下操作:

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 :(得分:0)

两种方式:

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>