ActionView::Helpers::FormHelper
def number_field(object_name, method, options = {})

説明

モデルの属性に紐づく、type="number" の <input> を作ります。

引数

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

object_name:product
method:quantity
options= {}
1..10
範囲を渡すと、その最小値と最大値で min と max を追加します。options に min や max も渡しても、:in の値で上書きします。
:within

:in と同じです。

ヘルパー共通の options

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

〜_field 共通

"3"
渡した値を、そのまま value 属性の値にします。デフォルトはオブジェクトの値です。オブジェクトがないか、値が nil なら、value 属性を追加しません。
true にすると、次の順に探して、最初に見つかったものを placeholder 属性の値にします。
  1. helpers.placeholder.product.quantity の訳
  2. オブジェクトがあれば、activerecord.attributes.product.quantity の訳(human_attribute_name が返すもの)
  3. 属性名を humanize した文字列(Quantity)
Symbol(:home など)を渡すと、値ごとの訳を、次の順に探します。
  1. helpers.placeholder.product.quantity.home の訳
  2. オブジェクトがあれば、activerecord.attributes."product/quantity".home の訳
  3. humanize した文字列(オブジェクトがあれば Home、なければ Quantity)
文字列は、そのまま使います。false は訳を探さず、placeholder="false" になります。

フォームヘルパー共通

"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 属性の値にします。
ここにない options は、<input type="number"> の HTML 属性になります。値が nil なら、その HTML 属性は追加しません。

ERB

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


          

HTML


          

プレビュー

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

フォーム送信

フォームデータ

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

Content-Type:


              

params