我有一个表格,用布尔值 Select 男性或女性.当我对布尔字段使用validates:presense时,它返回,性别不能为空!如果我删除validates部分,它会让它以true或false的形式进入数据库.这并没有让它成为零.我假设这是一个问题,因为我使用t/f,但我似乎不明白为什么.这是我的模型

class Visit < ActiveRecord::Base
    validates :user_id, :first_name, :last_name, :birthdate, :gender, 
        presence: true
end

我对这个领域的看法

<%= f.select :gender, 
    [['Male',false],['Female',true]], :value => false,
    label: "Gender" %>

推荐答案

因为不能对布尔字段使用状态验证.用包容代替.参见此处的文档:http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

如果要验证布尔字段的存在性(其中实值为true和false),则需要在:[true,false]中使用validates_inclusion_of:field_name.)

Ruby-on-rails相关问答推荐

对Rails进行枚举不允许空值

Rails7--如何使用内联代码仅为操作运行BEFORE操作

如何不需要rails/all?

从 rails 5 升级到 6 和 zeitwerk

Gem::Ext::BuildError:ERROR:无法在macOS Monterey上构建Gem本机扩展

如何获取 Rails 表单构建器将为某个字段生成的 HTML名称属性?

Rails 4 中的 null_session 和 reset_session 有什么区别?

循环大量记录时 Ruby on Rails 内存泄漏; find_each 没有帮助

验证以确保唯一性但忽略空值?

如何在 Linux 上使用 Ruby 2.0 改进独角兽进程之间的内存共享

将根 url 重定向到 Rails 应用程序中的其他位置

关闭 Firefox 中文本字段的自动完成功能

您将如何在 RoR 中创建类似 SO 或 Facebook 的通知系统?

用户注册时设计确认令牌无效

向 Rails 模型添加外键

我的 JavaScript 模式/实践很糟糕.我应该go 哪里寻求帮助?

按照给定 ID 数组的顺序按 ID 查找模型记录

Rails:弃用警告:您没有设置 config.secret_key_base

您可以在弹性 beantalk 环境中运行 rails 控制台或 rake 命令吗?

ArgumentError:ApplicationController 的副本已从模块树中删除,但仍处于活动状态