Ruby On Rails f.checkbox 隐藏字段

Mal*_*ler 3 checkbox ruby-on-rails ruby-on-rails-4

我在 Rails 表单上有一个复选框,如下所示:

      .columns.small-1
       = f.label :private
       = f.check_box :private
Run Code Online (Sandbox Code Playgroud)

如果未选中该框,则表单将正确发送并传递一个值。如果选中该框,则表单会发送相同的字段两次,一次值为 0,一次为 1,这导致该框始终显示为“未选中”并且值为 0。一直在研究 Rails 中的隐藏字段,但不确定如何来应用到这个问题。

Uzb*_*jon 6

这是正常行为。默认情况下,f.check_box呈现值为 0 的隐藏字段。在该隐藏字段之后,它呈现值为 1 的“复选框”类型的输入字段。输入字段和隐藏字段具有相同的名称。当这两个值都发送到服务器时,后面的值(复选框)将覆盖具有该名称的参数值。这应该会自动为您完成,除非您尝试手动解析参数。

  • @DavidGay因为这样你就可以提交未选中的复选框,否则未选中的值将永远不会到达服务器。 (2认同)