form_forの中身(f.○○)

何の記事か?
form_forで挟むf.labelやf.inputなどについてまとめる

基本構文

f.○○ :プロパティ名, オプション

プロパティ名はカラム名のこと。
f.○○では最初のform_forにオブジェクト名(テーブル名)が書かれており省略されている。
よってどのテーブルのどのカラムへ送信するデータなのかを書いてると言える
オプションの書き方はform_forと同じく option: "hoge" や option: :fuga でいい。

代表的なもの

f.label
f.text_field
f.textarea :プロパティ名, size: "縦x横"
f.collection_select :プロパティ名, :オブジェクトの配列, :value属性, :テキスト
f.collection_check_boxed :オブジェクト名, :プロパティ名, :オブジェクトの配列, :value属性, :テキスト 
ストロングパラメータで
params.require(:オブジェクト名).permit({:プロパティ名=>[]}
f.collection_radio_buttons :オブジェクト名, :プロパティ名, :オブジェクトの配列, :value属性, :テキスト

selectはセレクトボックス。配列に並べたいテーブルのレコード、valueに:id、テキストに表示したいカラムを書くことで
レコードを元にしたセレクトボックスを作ることができる。

collection_check_boxedは多(A)対多(B)でのチェックボックス
第1引数はAモデル
第2引数はB_ids
第3引数はBのレコード(配列)
第4引数は検索カラム:id
第5引数は表示したいカラム
と記述することでBのリストを使って入力させ、Aのレコードを作成する。
さらにAとBを繋ぐ中間テーブルにAとBのidを記録する・・という動作ができる。
第2引数でいきなりB_idsというプロパティ(カラム名)が使えるのがまだしっくり来ないが
User_idというカラムがあって、ここがuser_idsという記述では動かないという記事があったため
「user_idとuser_ids」と対応する複数形にすることでRailsがよしなにしてくれてるのだと考えている。
ラジオボタンチェックボックスと挙動は同じ。