ActionView::Helpers::FormHelper

alias: check_box

def checkbox(object_name, method, options = {}, checked_value = "1", unchecked_value = "0")

説明

モデルの属性に紐づく、type="checkbox" の <input> と、その前の hidden の <input> を作ります。

引数

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

object_name:article
method:published
options= {}
true か "checked" のときだけ、checked="checked" を追加します。disabled などと違い、"true" や 1 では追加しません。デフォルトではオブジェクトの値と引数の checked_value を比べて決めます。
"yes"
渡しても使いません。value 属性の値には、引数の checked_value の値が入ります。
false にすると、hidden の <input> を追加しません。
true にすると、checkbox の <input> と hidden の <input> の、両方の name 属性の値の最後に [] を追加します。引数の checked_value の空白と . を _ にし、- 以外の記号を消して小文字にしてから、id 属性の値の後ろに追加します。multiple 属性は追加しません。collection_checkboxes が中で使うための仕組みです。
true にすると、checkbox の <input> と hidden の <input> の両方に disabled を追加します。
"other_form"
hidden の <input> にも、同じ form を追加します。
"q"
自動で作る name 属性の値の代わりに、渡した値を使います。hidden の <input> にも、同じ値の name 属性を追加します。nil を渡すと、どちらにも name 属性を追加しません。
ヘルパー共通の options

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

フォームヘルパー共通

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

すべてのヘルパー共通

{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 以外のキーを空白でつなぎます。
ここにない options は、<input type="checkbox"> の HTML 属性になります。値が nil なら、その HTML 属性は追加しません。
= "1"
checkbox の <input> の value 属性の値になります。
= "0"
hidden の <input> の value 属性の値になります。nil か false を渡すと、hidden の <input> を追加しません。

ERB

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


          

HTML


          

プレビュー

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

フォーム送信

フォームデータ

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

Content-Type:


              

params