Sinatraで複数のチェックボックスのうち選択されたものだけを処理

複数のチェックボックスのうち、選択されたものだけを処理する方法。

html

  <input type="checkbox" name="id[]" value="1" checked /> 1
  <input type="checkbox" name="id[]" value="2" /> 2
  <input type="checkbox" name="id[]" value="3" checked /> 3

ruby

p params[:id] # => ["1","3"]
params[:id].each do |i|
  p i # => "1" or "3"
end

チェックボックスのnameはidでなくid[]と書くと選択されたチェックボックスvalueが配列として格納される。
eachを使うと、選択されたチェックボックスvalueがiに格納されるらしい。
params[:id][i]と書くと上記の場合うまく動作しなかった。