I’ve run across this. If you’re using the form_for(:model) format it seems to generate the necessary hidden input with value=0 whereas the check_box_tag didn’t. If I recall correctly. Once I moved to the form_for format those kinds of problems haven’t popped up again.
Hope that helps.