Techioz Blog

Ruby/Rails: 15 の倍数のみを選択できるようにビューの datetime_field を変更する方法はありますか?

概要

私のビューの 1 つに次の 2 行があります。

   <%= form.label :time, style: "display: block" %>
   <%= form.datetime_field :time%>

:time 変数 (DateTime 型) に任意の時間を選択できます。

0、15、30、または 45 分のオプションのみが表示されるように制限したいのですが、検証を使用せずにこれを行う方法はありますか?

解決策

ネイティブの日時入力では、分の選択はできません。ただし、Rails の time_select メソッドを : minutes_step オプションとともに使用することはできます。

<%= form.time_select :time, { minute_step: 15 } %>

:start_hour および :end_hour オプションを使用して、時間の範囲を制限することもできます。例えば。:

<%= form.time_select :time, { minute_step: 15, start_hour: 9, end_hour: 17 } %>

これにより、時間の選択は午前 9 時から午後 5 時まで、15 分間隔に制限されます。