如何避免短路评估

2024-02-09

我正在使用 Ruby on Rails 并希望验证两种不同的模型:

if (model1.valid? && model2.valid?)
...
end

但是,“&&”运算符使用短路求值(即,仅当“model1.valid?”为 true 时才求值“model2.valid?”),这会阻止在 model1 无效时执行 model2.valids。

是否存在不使用短路评估的等效“&&”?我需要评估这两个表达式。


尝试这个:

[model1, model2].map(&:valid?).all?

如果两者都有效,它将返回 true,并在两个实例上创建错误。

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

如何避免短路评估 的相关文章

随机推荐

  • 动态格式化字符串[重复]

    这个问题在这里已经有答案了 如果我想让我的格式化字符串动态可调 我可以更改以下代码 print 20s 20s Python Very Good to width 20 print str width s str width s Pytho
  • 即使安装了 gem,Ruby 也找不到所需的库

    我花了几天时间尝试安装 ruby 1 9 2 并让它与 gems 一起工作 我最终放弃了我的 Mac OSX 10 6 机器 下面是我的 Ubuntu 机器上的当前状态 任何建议将不胜感激 ruby test rb
  • 如何在 AngularJS 中观察 $stateProvider 的状态变化?

    我知道我可以运行 scope watch someItem function 但我想不出一种方法来观察变化 state current name在我的应用程序中 它在文档中 https github com angular ui ui ro
  • 调用 mysqli_error() 时发出警告[重复]

    这个问题在这里已经有答案了 可能的重复 PHP警告有帮助吗 https stackoverflow com questions 1654958 php warning help 我试图连接数据库中的三个表以显示用户选择的类别 但出现以下错误
  • HTTP 方法:DELETE 与 POST

    假设我有一个名为 Session 的资源 客户端将调用 PUT 来创建并开始新会话 当客户端完成会话后 它不应该再被访问 但由于历史 责任原因应该持续存在 要结束会话 发出 DELETE 请求 这在语义上看起来更接近预期效果 是否更合适 或
  • 分组条形图中的堆叠条形

    我有下面的图表 test lt expand grid cat LETTERS 1 5 cond c F T year 2001 2005 test value lt floor rnorm nrow test 100 test value
  • 是否可以获取指向 Windows 7 中默认音频端点设备缓冲区的指针?

    此处使用 Win32 API 我一直在 MSDN 文档中搜索 Windows Vista 中的核心音频服务 但没有找到保护默认音频缓冲区的方法 我的目标是建立正在播放的音频的实时频谱图数据 有什么方法可以在通过扬声器播放音频流之前访问它吗
  • SCNetworkReachability 是否尊重 HTTP 代理设置?

    恐怕这个问题的答案是否定的 但我希望有人能够提供明确的答案 因为当前的 iOS SDK 文档中没有记录该答案 我们看到 NSURLConnection 能够连接到的情况https mysite com https mysite com通过
  • 显示日期处于财政年度的哪个季度

    我正在尝试构建一个查询 该查询将映射两列 一列是表中的日期 第二列是别名 以显示该日期属于哪个季度和财政年度 不幸的是 我没有足够的 SQL 知识 不知道从哪里开始 我知道我会结合使用以下方法来做到这一点getdate and datead
  • 将 chrono:: 毫秒转换为 uint64_t?

    假设我有可变的毫秒数x chrono milliseconds x std chrono duration cast
  • BLE Swift 写入特性

    我正在努力让我的 TI 传感器标签温度传感器发出通知 根据http processors wiki ti com images a a8 BLE SensorTag GATT Server pdf http processors wiki
  • 自定义 spring-initializr 的工作方式?

    作为一家企业 我们希望在我们的 PCF 实例上内部托管initializr 我可以做到 我还可以修改 application yml 以默认某些选择 我通过简单地创建自己的 spring boot 应用程序来做到这一点 该应用程序使用 io
  • R 正在使用 mingw_32 编译 64 位架构的包

    定期 我想每当我更新 R 我在 64 位 Windows 机器上从源代码安装软件包时都会遇到问题 今天我尝试使用安装包devtools install github 在我的笔记本电脑上安装进行得很好 但在我的台式机上安装失败 可以将软件包安
  • 参数顺序评估

    在标准的早期版本 C 03 中 函数调用的参数求值顺序未指定 标准的后续版本 C 11 或 C 14 是否对此进行了更改 即我们是否可以依赖特定的顺序 从左到右 不 这没有改变 但最近有一个建议来改变这一点 N4228 细化表达式评估顺序
  • mingw 中的套接字编程

    我编写了服务器 客户端 C 代码并在 Visual Studio 中进行了测试 一切正常 但我想转换为 CodeBlocks MinGW Gnu CC Compiler 并且它返回一些错误 例如 warning 忽略 pragma 注释 W
  • 油藏取样

    检索k我们使用一种称为水库采样的技术从不确定大小的数组中获取随机数 有人可以用示例代码简要介绍一下它是如何发生的吗 我实际上没有意识到这个有一个名字 所以我从头开始证明并实现了这个 def random subset iterator K
  • maven-cobertura-plugin 不显示来源[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 当我通过运
  • $http 请求中的 AngularJS + Jasmine + JWT 令牌

    我正在尝试使用与 JWT 身份验证令牌一起使用的 API 构建一些测试 但我尝试测试的工厂使用 resouce 需要配置为JWT Token 在应用程序中我将其配置为 config 但在Jasmine我不知道应该怎样 因为茉莉花跑了befo
  • 为什么多边形 GeoJSON 对象的坐标存储在数组的数组中?

    正如在官方文档 http docs mongodb com manual reference geojson polygon 多边形GeoJSON对象的结构如下所示 db someCollection insert type Polygon
  • 如何避免短路评估

    我正在使用 Ruby on Rails 并希望验证两种不同的模型 if model1 valid model2 valid end 但是 运算符使用短路求值 即 仅当 model1 valid 为 true 时才求值 model2 vali