ActionView::Helpers::DateHelper
def time_select(object_name, method, options = {}, html_options = {})

説明

モデルの属性に紐づく、時・分の <select> と、年・月・日の hidden の <input> を作ります。

引数

値を変えると、ERB と HTML が変わります。

object_name:user
method:starts_at
この属性から、次のものを作ります。
  • name:user[starts_at(4i)] のように、(4i)(時)と (5i)(分)を付けた形です。Active Record は、届いた値を 1 つの日時にして、属性に入れます。
  • selected:オブジェクトの値と同じ value の <option> に追加します(オブジェクトの値がなければ今の日時)。オブジェクトの値がなく、include_blank か prompt を渡したときは、どれにも追加しません。
  • 年、月、日:(1i) から (3i) の hidden の <input> にします。オブジェクトの値がなく、include_blank か prompt を渡したときは、どれも 1 になります。
options= {}
true にすると、年、月、日の hidden の <input> を出力しません。

時刻の <select> の options

true にすると、分のあとに秒の <select>((6i))を追加します。
15
分の <select> に、この数ごとの分を並べます。selected を追加する分が並べた分にないときは、どの <option> にも selected を追加しません。
9
時の <select> の最初の時です。
17
時の <select> の最後の時です。
true にすると、時の <option> のテキストを、AM と PM を付けた 12 時間の形にします。value は 24 時間のままです。
"h"
時と分の <select> の間に、この文字列を入れます。分と秒の間も同じです。文字列はエスケープしません(&mdash; などの文字参照も、そのまま HTML になります)。
true にすると、時の <select> の代わりに、hidden の <input> を追加します。
true にすると、分の <select> の代わりに、hidden の <input> を追加します。datetime_select と select_datetime では、include_seconds: true の秒も hidden の <input> にします。

すべての <select> の options

true にすると、全部の <select> の先頭に、value が空の <option> を追加します。
渡す値によって、次のように変わります。
  • true:全部の <select> の先頭に、value が空の <option> を追加します。テキストは datetime.prompts.year などの訳です。
  • 文字列:全部の <select> の先頭に追加し、その文字列をテキストにします。
  • Hash({ year: "年" }):キーの名前の <select>(year なら年の <select>)にだけ追加し、値をテキストにします。
Time.new(2000, 1, 2, 18, 0, 0)
オブジェクトの値がないときに、selected を追加する日時です。options の include_blank か prompt を渡すと、使いません。Hash({ hour: 18, minute: 0 })を渡すと、渡さなかった年や日は今の日時のものを使います。
Time.new(2000, 1, 2, 18, 0, 0)
オブジェクトの値の代わりに、selected を追加する日時です。
true にすると、全部の <select> と hidden の <input> に disabled を追加します。
true にすると、それぞれの <select> に、年なら class="year"、時なら class="hour" のように class を追加します。Hash({ year: "y" })を渡すと、キーの名前の <select> の class 属性の値を Hash の値にし、ほかの <select> には class="" を追加します。html_options の class も渡すと、その値のうしろに空白をはさんで足します(Hash や配列の class は、そのまま文字列になります)。
true にすると、全部の <select> の代わりに、hidden の <input> を追加します。
Rails は DateHelper のどのヘルパーでも、同じ名前の options をほぼ同じように処理します。違うものは、その option の説明に書いています。locale を渡すと、月の名前と prompt の文字列と date.order の並びに、そのロケールの訳を使います。このページでは、HTML が変わらないものと、使う場面が少ないとこのサイトで判断したものを省いています。ここにない options は、HTML 属性になりません。
html_options= {}
ヘルパー共通の options

Rails はどのヘルパーでも、これらの options を同じように処理します。HTML の仕様で <select> に使えないものや、使う場面が少ないとこのサイトで判断したものは、ここでは省いています。

すべてのヘルパー共通

{active: true, hidden: false}
Hash を渡すと、値が false と nil 以外のキーを空白でつなぎます。配列を渡すと、nil、false、空の文字列(空白だけの文字列も)を外して、空白でつなぎます。
{controller: "tags", tags_suggestions_value: ["ruby", "rails"]}
Hash を渡すと、キーの _ を - にして、data-* 属性を追加します。値に配列や Hash を渡すと、JSON の文字列にします。
{describedby: ["name_help", "name_error"], invalid: false}
:data と同じく、aria-* 属性を追加します。値が配列なら、nil と空の文字列を外して、空白でつなぎます(何も残らなければ、追加しません)。値が Hash なら、値が false と nil 以外のキーを空白でつなぎます。
ここにない html_options は、全部の <select> の HTML 属性になります。値が nil なら、その HTML 属性は追加しません。id と name も、自動で作る値の代わりに、全部の <select> に同じ値を使います。

ERB

直前との違い: 追加 削除 変更


          

HTML


          

プレビュー

プレビューを操作すると、フォーム送信の内容が変わります。

フォーム送信

フォームデータ

namevalue
リクエストボディを見る

Content-Type:


              

params