チェックボックスのvalidation

チェックボックスはONかOFFでないとならない。

この命題に対してvalidationを書ける方法は、「チェックボックス rails validates」でググっても出てこなかったので記録しておく。

答え

答えを見てしまえば簡単。

validates :checkbox, inclusion: { in: [true, false] }

うまくいかなかった方法

  1. 数値

    HTTP上は0か1が返ってきている(debug(params)でも0か1が表示されている)ことから以下のように書いたがダメだった。

    ruby validates :checkbox, inclusion: { in: [0, 1] }

  2. 文字

    リクエストパラメータは、'0'か'1'という文字なので以下のように書いたがダメだった。

    ruby validates :checkbox, inclusion: { in: ['0', '1'] }

わかったこと

  • Modelに記載するvalidatesは、modelの型に合わせる