82997


タイトル通りなんですが

`f.check_box 'test'`

とかくと

[code]

    <input name="test" type="hidden" value="0">
    <input type="checkbox" value="1" name="test" id="test">
    
[/code]

というHTMLが生成されます  
１行目の hidden_field にはどういう意味があるのでしょうか

そもそも name の重複って HTML の規約的にOKなんでしょうか


CC BY-SA 4.0
2021-10-07T07:18:32.137
82933
2021-10-11T00:26:37.137
2021-10-07T07:58:46.267
question
ruby-on-rails
f.check_box で出力される hidden field って何のため？


この例で言うと `test` が boolean の場合に、チェックを外したら `false` として値が保存されるように hidden
フィールドが出力されてます。

**チェックを入れずに送信した場合:**  
`value=0` だけが送られて boolean が false として保存される。

**チェックを入れて送信した場合:**  
`value=0` と `value=1` のパラメータ両方が送られる。  
サーバー側では後ろのパラメータで上書きして boolean は true になる。

もしも hidden フィールドが存在しない場合は、 `value=0` が送られることはないので、一度 true になったら false
になることは無くなってしまいます。


CC BY-SA 4.0
2021-10-11T00:26:37.137
82997
2021-10-11T00:26:37.137
8329
82933
answer