ActionView::Helpers::FormBuilder#check_boxに書かれている内容。
checkboxのチェックがオフの状態だとブラウザはその値を送信しないため、そのままcheckboxがオフになったことをサーバに伝えることができない。
そこでRailsのcheck_box
メソッドは
<input name="post[validated]" type="hidden" value="0" /> <input checked="checked" type="checkbox" id="post_validated" name="post[validated]" value="1" />
のようにhiddenのあとに続けてcheckboxを生成する。
ブラウザは上から順次パラメータを送信していき、Railsはそれを順に解釈していく。そのときオフの状態では上にあるhidden側のvalueのみが送信され、オンの状態ではhidden側のvalueは下にあるcheckbox側のvalueによって上書きされて送信される。
うまく回避してるなあ、という感じ。