株式会社TECH LUCKという会社で代表兼エンジニアをしている齊藤です。
DXプロジェクト、開発プロジェクト、Rails開発などでお困りごとがありましたら弊社HPからご相談をいただけますと幸いです。
以下のような問題に対応することが可能です。
- プロジェクトでRailsエンジニアが足りなくて困っている
- Railsのバージョンアップをしたいがノウハウ・リソースが足りなくて困っている
- オフショア開発をしているが、要件の齟齬やコード品質が悪いので改善したい
また、Railsエンジニアも募集しておりますので、興味がありましたら弊社HPからご連絡いただけますと幸いです。
前提
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でパラメーターがコントローラーに渡っておらず、値を入れることができないようになっていたことが原因です。