Ruby on Railsにおいて、form_for
をしつつradio_button
を設置するケースは非常に多くあると思います。
フォームを作成するケースで元からチェックを入れたい(チェック済み)場合、確認画面から戻って来た時にチェックがあらかじめ入っている処理にしたい場合にどうやって実現するかと 注意点について書きます。
ちょっとハマりポイントがあるので、共有ですね。
radio_buttonにチェックが入った状態はどんな状態なのか
<input checked="checked" >
となるのがcheckが入った状態のようです。
注意するポイントは、classでcheckedに入れたりしてcheckがされている状態だと思ってしまうところです。 これによってparamsの中に含まれていない!なんてことなったことがありました。
ちゃんとチェックさせる
@form.radio = "aaa"
= form_for @form do |f| = f.radio_button :radio, :aaa
ここ、この :aaa
の部分と @form.radio
の中身を一致させないとチェックしてくれません。
この2つの値を一致させておくことがポイントです。