【Rails】booleanのカラムにenumを設定した際のチェックボックスの挙動
このようなmodelがあったとして、
class Billing < Activerecord enum billed: { done: true, in_progress: false } end
編集画面で
~略~ = f.check_box :billed ~略~
のようにすると一見編集できそうですが、このままだとチェックしてsubmitした際に
'1' is not is not a valid billed
のようなエラーが出ます。
色々調べたところenumの影響のようで、check_boxのデフォルトのチェック時の値が1なのでこのようになっているようです。 なので対策としてはcheck_boxのチェック時・非チェック時の値を変更すればokです。 今回の例では、
~略~ = f.check_box :billed, {}, checked_value='billed', unchecked_value='in_progress' ~略~
のようにすれば問題なく通ります。