ActionView::Helpers::FormOptionsHelper
def time_zone_select(object, method, priority_zones = nil, options = {}, html_options = {})

説明

モデルの属性に紐づく、タイムゾーンの <select> を作ります。

引数

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

object:user
method:time_zone
= nil
先頭に並べるタイムゾーンです。そのあとに、disabled の区切りの <option>(-------------)を置いて、残りのタイムゾーンを並べます。ActiveSupport::TimeZone の配列か、正規表現を渡せます。正規表現は、タイムゾーンの名前か、Asia/Tokyo のような名前に当てはまるものを選びます(/Tokyo/ なら、Asia/Tokyo を使う Osaka と Sapporo も入ります)。
options= {}
"Tokyo"
オブジェクトの値と同じ value の <option> に selected を追加します。オブジェクトの値がないときは、代わりにこのタイムゾーンの <option> に追加します。
true にすると、先頭に value が空の <option> を追加します。文字列を渡すと、その文字列をテキストにします。html_options の required が true のときに false を渡すと、ArgumentError になります。html_options の multiple が true か size が 1 でないときは、エラーになりません。
true にすると、オブジェクトの値がないときだけ、先頭に value が空の <option> を追加します。テキストは helpers.select.prompt の訳か、なければ Please select です。文字列を渡すと、その文字列をテキストにします。
ここにない options は、次のように使います。ほかは使いません。
  • model:ActiveSupport::TimeZone の代わりに、渡したクラスの all が返したものを並べます。
  • include_hidden:select と同じです。
  • required、multiple、size:html_options に移して、<select> の HTML 属性にします。
  • selected、disabled:タイムゾーンの <option> には効きません。selected を渡すと prompt を出さず、disabled: "" なら prompt の <option> に disabled を付けます。
html_options= {}
true にすると、required 属性を追加し、options の include_blank を渡さなくても先頭に value が空の <option> を追加します。options の prompt に真の値を渡したときと、html_options の multiple が true か size が 1 でないときは、追加しません。
ヘルパー共通の options

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

フォームヘルパー共通

"q"
自動で作る name 属性の値の代わりに、渡した値を使います。nil を渡すと、name 属性を追加しません。
nil
自動で作る id 属性の値の代わりに、渡した値を使います。nil を渡すと、id 属性を追加しません。

すべてのヘルパー共通

true にすると disabled="disabled" を追加し、false にすると追加しません。readonly、required、autofocus など、Rails が持っている一覧(BOOLEAN_ATTRIBUTES)にある HTML 属性はどれも同じで、値が false と nil 以外なら 属性名="属性名" の形で追加します。
{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 以外のキーを空白でつなぎます。
["section-user", "name"]
配列を渡すと、要素を空白でつないで autocomplete 属性の値にします。
ここにない html_options は、<select> の HTML 属性になります。値が nil なら、その HTML 属性は追加しません。

ERB

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


          

HTML


          

プレビュー

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

フォーム送信

フォームデータ

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

Content-Type:


              

params