【问题标题】:Rails form passing false as default value for boolean while submittingRails 表单在提交时将 false 作为布尔值的默认值传递
【发布时间】:2015-09-22 12:36:48
【问题描述】:

我想在提交时提交 false 作为 rails 表单的默认值。

但是在提交之后,我将 null 作为默认值。

代码如下

<%= f.check_box :known, {}, "false" %>

对于表名notes

,列名已知

谁能帮我解决这个问题?

【问题讨论】:

  • 如果你总是想要false作为默认值,你应该考虑将它设置为数据库中的默认值。您可以通过迁移来做到这一点,例如change_column :notes, :known, :boolean, default: false.
  • 试试&lt;%= f.check_box :known, {}, "false", "true" %&gt;
  • 嘿乔恩,我做到了。这是迁移代码。 add_column :notes, :known, :binary, default:false。迁移后提交的值很奇怪。而不是 false 我得到 x'66616c7365' 。我不知道为什么..
  • 对不起。而是给&lt;%= f.check_box :known, {}, "true", "false" %&gt;
  • 谢谢@Pavan 这行得通!!!

标签: ruby-on-rails ruby forms checkbox boolean


【解决方案1】:

根据 @Jon 的建议,如果您总是希望false 作为默认值 值,您应该将其设置为数据库中的默认值。下面的迁移代码就是这样做的。

change_column :notes, :known, :boolean, default: false

如果您想为用户提供将其更改为 true 的选项,请指定 check_box,如下所示。

<%= f.check_box :known, {}, "true", "false" %>

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    相关资源
    最近更新 更多