ActionView::Helpers::FormHelper
def label(object_name, method, content_or_options = nil, options = nil, &block)

説明

モデルの属性に紐づく <label> を作ります。

引数

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

object_name:user
method:plan
= nil
<label> の中身にする文字列です。ブロックを渡すと、この文字列は使いません。Hash を渡すと、options として扱います(4 つ目の引数の options を省いて書けます)。デフォルトの <label> の中身は、次のうち最初に見つかったものになります。
  1. helpers.label.user.plan の訳
  2. オブジェクト(@user)があれば、activerecord.attributes.user.plan の訳(human_attribute_name が返すもの)
  3. 属性名を humanize した文字列(Plan)
options= nil
"plan_select"
自動で作る for 属性の値の代わりに、渡した値を使います。options の value を渡しても、for 属性の値には追加しません。nil を渡すと、for 属性を追加しません。
"premium"
次の 2 つに使います。value 属性は追加しません。
  • for 属性:空白と . を _ にし、- 以外の記号を消して小文字にしてから、値の最後に追加します。
  • 中身の訳:属性名のあとにこの文字列をつないだキー(helpers.label.user.plan.premium など)も探します。オブジェクトがあると、中身の訳の 2 つ目と 3 つ目(content_or_options の説明)もこの文字列を使うので、訳がなければ、この文字列を humanize したもの(Premium)になります。属性の訳(activerecord.attributes.user.plan)は使いません。
ヘルパー共通の options

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

すべてのヘルパー共通

{active: true, hidden: false}
Hash を渡すと、値が false と nil 以外のキーを空白でつなぎます。配列を渡すと、nil、false、空の文字列(空白だけの文字列も)を外して、空白でつなぎます。
{controller: "tags", tags_suggestions_value: ["ruby", "rails"]}
Hash を渡すと、キーの _ を - にして、data-* 属性を追加します。値に配列や Hash を渡すと、JSON の文字列にします。
ここにない options は、<label> の HTML 属性になります。値が nil なら、その HTML 属性は追加しません。
&block= nil

ERB

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


          

HTML


          

プレビュー

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

フォーム送信

フォームデータ

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

Content-Type:


              

params