Rails 3 验证:存在 => false

2024-03-23

这是我期望的一个非常简单的问题,但我在指南或其他地方找不到明确的答案。

我的 ActiveRecord 有两个属性。我希望其中一个存在,另一个为零或空白字符串。

我该如何做相当于 :presence => false 的事情?我想确保该值为零。

validates :first_attribute, :presence => true, :if => "second_attribute.blank?"
validates :second_attribute, :presence => true, :if => "first_attribute.blank?"
# The two lines below fail because 'false' is an invalid option
validates :first_attribute, :presence => false, :if => "!second_attribute.blank?"
validates :second_attribute, :presence => false, :if => "!first_attribute.blank?"

或者也许有一种更优雅的方法来做到这一点......

我正在运行 Rails 3.0.9


为了允许对象当且仅当特定属性为零时才有效,您可以使用“包含”而不是创建自己的方法。

validates :name, inclusion: { in: [nil] }

这是针对 Rails 3 的。Rails 4 解决方案要优雅得多:

validates :name, absence: true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 验证:存在 => false 的相关文章

随机推荐

  • Django 表单向导和 recaptcha

    我使用以下命令进行了验证码集成Django 片段 http www djangosnippets org snippets 1653 settings py RECAPTCHA PUBLIC KEY
  • 创建物化视图时如何指示某列不可为空?

    我正在使用以下查询创建物化视图 CREATE MATERIALIZED VIEW article view AS SELECT id alternative headline article author id created at des
  • 有没有更好的方法在字符串列表上使用 strip() ? - 蟒蛇[重复]

    这个问题在这里已经有答案了 现在我一直在尝试对字符串列表执行 strip 我这样做了 i 0 for j in alist alist i j strip i 1 有更好的方法吗 你可能不应该使用list作为变量名 因为它是一种类型 不管
  • 内连接与 IN

    SELECT C FROM StockToCategory STC INNER JOIN Category C ON STC CategoryID C CategoryID WHERE STC StockID StockID VS SELE
  • Rx 中的历史调度程序

    我有以下代码 我尝试重播序列 但 PostWorkItem 总是为 null 我不明白为什么 下面的代码给出了堆栈溢出错误 Task
  • 锁内锁

    我想知道这种构造是否会导致错误 lock sync something lock sync something lock sync something 我已经运行了这段代码 看起来不错 但也许在某些情况下可能会引发错误 lock是一个包装器
  • 如何指定头文件引入的库依赖

    假设在 CMake 项目中 我有一个内置到库中的源代码 a cpp void f some code 我有一个标题 b h void f struct X void g f 我还有另一个文件 main cpp include b h int
  • 在 PHP 中压缩字符串的最佳方法[重复]

    这个问题在这里已经有答案了 我正在使用 gzcompress json encode arr 9 压缩数组 所以我使用 json encode 将数组转换为字符串 然后使用 gzcompress 进行压缩 但我找不到结果字符串大小的太大差异
  • 通过 jasperreport 打印整个 HashMap

    我需要通过 jasperreport 打印整个地图 Example Column1 Column2 key1 val1 key2 val2 key2 val2 应该选择什么数据源 报告来源应包含哪些内容 PS 我不想像 P key11 那样
  • Highcharts:确保 y 轴 0 值位于图表底部

    我在页面上输出一系列高图表 在某些情况下 指定时间段内的所有数据可能返回 0 值 在这种情况下 图表如下所示 http jsfiddle net charliegriefer KM2Jx 1 http jsfiddle net charli
  • 光标所在位置未输入字符

    在我的 Ace 编辑器中 滚动条出现后 字符被输入 但不是光标所在的位置 见下图 出了什么问题 该代码在我的开发环境中似乎工作正常 我注意到我的开发环境的字体比我的产品环境的字体大 Dev env 产品环境 我不明白为什么会有差异 以及这是
  • 如何在 Mono/Windows 上使用 gecko-sharp 嵌入 Gecko?

    Gecko 是 Firefox 的渲染引擎 使用 gecko sharp 可以将其嵌入到任何 Mono GTK 程序中 有一个名为的示例应用程序GladeSharp浏览器 http developer novell com wiki ind
  • Sql Server 中的标识列

    为什么 Sql 服务器不允许在一张表中存在多个 IDENTITY 列 任何具体原因 你为什么需要它 SQL Server 会跟踪单一值 当前标识值 对于每个表IDENTITY列 因此每个表只能有一个标识列
  • R - 来自 SpatialPolygons 列表的 SpatialPolygonsDataFrame

    我正在寻找一种从 SpatialPolygons 列表创建 SpatialPolygonsDataFrame 的方法 下面是一个多边形列表的示例 应从中创建包含列表中所有多边形的 SpatialPolygonsDataFrame 编辑 Sp
  • 致命错误:未捕获 OAuthException:(#803) 您请求的某些别名不存在

    致命错误 未捕获的 OAuthException 803 您请求的某些别名不存在 0 309479102458745 在第 1039 行的 base facebook php 中抛出 我的应用程序工作正常 然后突然许多用户收到此错误 0 3
  • Codeigniter 增加会话超时不起作用

    我是 codeigniter 框架的新手 我遇到页面会话超时问题 现在我已经启用了 ip 匹配 用户代理匹配 但不起作用 我尝试过的另一种方法是更新 2 1 4 库文件并将其复制到我的系统中 文件夹但这也不起作用 请帮助我解决会话超时问题
  • Elasticsearch 中对象聚合的嵌套数组

    Elasticsearch 中的文档是这样索引的 文件1 task completed 10 tagged object category cat count 10 category cars count 20 文件2 task compl
  • 将参数添加到“队列新建”对话框

    我基于 DefaultTemplate xaml 构建了一个自定义构建流程模板 并添加了一些参数 它们在 构建定义 窗口中显示良好 但我找不到将它们显示在 队列新构建 对话框的参数选项卡上的方法 我希望这是可能的 我宁愿不需要为参数的每个变
  • 如果目录为空,如何跳过 grunt 任务

    我正在使用 grunt contrib 的concat and uglify处理一些 javascript 的模块 目前如果src js 是空的 他们仍然会创建一个 空 连接文件 以及缩小版本和源映射 我想要检测是否src js 继续之前文
  • Rails 3 验证:存在 => false

    这是我期望的一个非常简单的问题 但我在指南或其他地方找不到明确的答案 我的 ActiveRecord 有两个属性 我希望其中一个存在 另一个为零或空白字符串 我该如何做相当于 presence gt false 的事情 我想确保该值为零 v