Help us understand the problem. What is going on with this article?

ラベルで時刻を選択する メモ

More than 5 years have passed since last update.

時刻を定形リストから選択できるようにしたい

概要

たとえば時間割など、決まった時刻セットを選択してもらいたい場合は、time_select メソッドは不向き。
time_select で実現できなければ、ただのselect でやってみよう。

time_select メソッド

時刻選択

通常ならば、time_select メソッドで必要順分な機能があるとおもう。
1分刻みじゃなくって15分刻みにしたいなら、minuite_step: 15でできるし、秒数を選択肢に含めることもできる。
(詳しくはリファレンスを参照のこと。)

文字列で選択したい

文字列で選択

time_select のように時刻で選択するのではなく、文字列で選択したい場合、select メソッドを利用する。

ベタ書き:

app/views/schedules/_form.html.erb
<%= f.select :time, [['Period 1', '09:30']['Period 2', '10:30']] %>

ヘルパーメソッドにリストを移動、Viewで使う:

app/helpers/application_helper.rb

  def time_list
    [
      ['Period 1', '09:30'],
      ['Period 2', '10:30'],
      ['Period 2', '11:30'],
      ['Period 3', '13:45'],
      ['Period 4', '14:45'],
      ['Period 5', '15:45'],
      ['Period 6', '16:45'],
      ['Period 7', '17:45']
    ]

  end


app/views/chedules/_form.html.erb
<%= f.select :time, time_list %>

リンク

Ruby on Rails Documentation
* ActionView::Helpers::DateHelper
* ActionView::Helpers::FormOptionsHelper

gouf
だいたいボーッとしてる単純なひと。
http://gouf.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away