株式会社TECH LUCKという会社で代表兼エンジニアをしている齊藤です。
Railsのf.check_box
でBoolean型のカラムの情報の保存の際にめちゃくちゃハマったのでメモ。
Boolean型のカラムの場合には、以下のように書きます。
ここで注意なのは、値であるtrue, falseを文字列にすることです。
Boolean型のtrue, falseだと、保存に失敗した後のエラー画面でデフォルトの値がそのまま入ることになってしまうことになり、ユーザーが選択したものが解除されてしまいます。
<%= f.check_box :is_send_mail, { class: "mt-4", checked: f.object.is_send_mail }, "true", "false" %>
送られない理由は、Boolean型のtrue, falseだとform_withでパラメーターがコントローラーに渡っておらず、値を入れることができないようになっていたことが原因です。