Ruby on rails 简单表单格式化时间字段以显示“21:30”,而不是整个UTC时间字符串

Ruby on rails 简单表单格式化时间字段以显示“21:30”,而不是整个UTC时间字符串,ruby-on-rails,ruby-on-rails-3,time,format,simple-form,Ruby On Rails,Ruby On Rails 3,Time,Format,Simple Form,我的rails表单代码: 如何设置此表单,使其始终使用时间转换器显示此字段,以便在数据库具有完整字段2000-01-01 19:30:00.000000时,以仅显示19:30的形式显示?您可以将属性访问器添加到您的模型中,例如格式化的\u时间,并将此字段用于获取格式时间并进行设置。保存之前,您可以分析@formatted\u time的值并将其应用于事件字段的time\u。通过以下方法解决了此问题:在我的ApplicationHelper上创建了time\u格式方法: def time_form

我的rails表单代码:


如何设置此表单,使其始终使用时间转换器显示此字段,以便在数据库具有完整字段2000-01-01 19:30:00.000000时,以仅显示19:30的形式显示?

您可以将属性访问器添加到您的模型中,例如格式化的\u时间,并将此字段用于获取格式时间并进行设置。保存之前,您可以分析@formatted\u time的值并将其应用于事件字段的time\u。

通过以下方法解决了此问题:在我的ApplicationHelper上创建了time\u格式方法:

def time_format(datetime)
  datetime.strftime('%H:%M') unless datetime.blank?
end
然后在表格上:

<%= f.input_field :start_time, :as => :string, :value => time_format(f.object.start_time) %>
希望这对你有帮助

def time_format(datetime)
  datetime.strftime('%H:%M') unless datetime.blank?
end
<%= f.input_field :start_time, :as => :string, :value => time_format(f.object.start_time) %>