ActionView::Helpers::FormOptionsHelper
def collection_radio_buttons(object, method, collection, value_method, text_method, options = {}, html_options = {}, &block)

説明

モデルの属性に紐づく、collection の要素ごとのラジオボタンと <label> を作ります。

引数

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

object:user
method:plan_id
collectionPlan.all
collection の要素ごとにこのメソッドを呼んで、返した値をラジオボタンの value 属性の値にします。id 属性の値の後ろにも追加します。Proc を渡すと、要素を渡して呼び、返した値を使います。オブジェクトの値と同じ value のラジオボタンに、checked を追加します。
collection の要素ごとにこのメソッドを呼んで、返した値を <label> の中身にします。Proc を渡すと、要素を渡して呼び、返した値を使います。
options= {}
2
オブジェクトの値の代わりに、渡した値と同じ value のラジオボタンに checked を追加します。ほかのラジオボタンには追加しません。Proc を渡すと、collection の要素ごとに呼んで、真を返した要素のラジオボタンに追加します。
->(plan) { plan.archived? }
渡した値(配列なら、そのどれか)と同じ value のラジオボタンに、disabled を追加します。Proc を渡すと、collection の要素ごとに呼んで、真を返した要素のラジオボタンに追加します。
false にすると、先頭の hidden の <input> を追加しません。
ここにない options は、HTML 属性になりません。readonly と selected だけは disabled と同じく、渡した値と同じ value のラジオボタンにその HTML 属性を追加します。
html_options= {}
ヘルパー共通の options

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

フォームヘルパー共通

"q"
自動で作る name 属性の値の代わりに、渡した値を使います。nil を渡すと、name 属性を追加しません。先頭の hidden の <input> の name 属性の値も、この値になります。

すべてのヘルパー共通

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 以外のキーを空白でつなぎます。
ここにない html_options は、全部のラジオボタンの HTML 属性になります。値が nil なら、その HTML 属性は追加しません。
&block= nil
ブロックを渡すと、要素ごとにブロックを呼んで、ラジオボタンと <label> の代わりにブロックの出力を並べます。ブロックの引数(b)の radio_button と label で、その要素のラジオボタンと <label> を作れます。text と value で text_method と value_method が返した値を、object で要素そのものを読めます。

ERB

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


          

HTML


          

プレビュー

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

フォーム送信

フォームデータ

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

Content-Type:


              

params