首页 > 解决方案 > Ruby on Rails:如何在 time_field 上分配“step”属性以每隔 30 分钟执行一次?

问题描述

我正在使用 form_with 使用 Ruby on Rails 生成一个 html 表单。在这个 form_with 中,我使用 fields_for 来生成作为第一个表单属性的另一部分表单。

不过,为了简单起见,我只想知道如何将时间选择限制为 30 分钟增量。

例如,我正在做:

<%= form.fields_for employee_jobs do |assign_job| %> 
  <%= assign_job.time_field :time_start %> 
<%= end %> 

我怎样才能做到这一点,以便在完成后在 html 时间输入节点中获得“步骤”属性?现在,我正在尝试做:

<%= form.fields_for employee_jobs do |assign_job| %> 
  <%= assign_job.time_field(:time_start, :step=>600) %> 
<%= end %> 

但这并没有给我想要的结果。

标签: htmlruby-on-railsruby

解决方案


我发现我需要做什么。您可以使用 time_select 输入,而不是使用 time_field 输入,并通过 minute_step 关键字指定步骤。

代替:

<%= form.fields_for employee_jobs do |assign_job| %> 
  <%= assign_job.time_field :time_start %> 
<%= end %> 

你可以做:

<%= form.fields_for employee_jobs do |assign_job| %> 
  <%= assign_job.time_select :time_start {:minute_step => 30} %> 
<%= end %> 

这解决了我的问题。


推荐阅读