验证一个字段或另一个字段是否存在 (XOR)

2023-11-27

如何验证一个或另一个字段的存在,但不能同时验证两个字段和至少一个字段的存在?


如果您将条件添加到数值验证中,您的代码将起作用,如下所示:

class Transaction < ActiveRecord::Base
  validates_presence_of :date
  validates_presence_of :name

  validates_numericality_of :charge, allow_nil: true
  validates_numericality_of :payment, allow_nil: true

  validate :charge_xor_payment

  private

  def charge_xor_payment
    return if charge.blank? ^ payment.blank?

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

验证一个字段或另一个字段是否存在 (XOR) 的相关文章

  • 如何使用康康康舞?

    我想向我的 Rails 应用程序中的用户授予权限 我有 管理员 可以创建 更新和删除所有帖子和评论 用户 只能创建和更新自己的评论 访客 则不能执行这些操作 为此 我使用宝石 devise 和 cancancan 我理解 devise 宝石
  • Rails Heroku 服务器回形针 Amazon S3 - AWS::S3::Errors::RequestTimeout

    当我使用附加图像保存 konkurrencer 模型时 我在 Heroku 上收到错误 但在本地服务器上却没有 我的 Heroku 日志 36m2012 04 01T17 45 37 00 00 app web 1 0m Started P
  • 在 Rails 中将一列添加到另一列之前

    我想在我的桌子前面放一个柱子我知道你可以做到 add column customer first name after last name 但有什么办法吗 before 您可以使用以下命令在表格前面插入一列 first option add
  • 安装 sqlite3 公共密钥环时出错,未找到

    怎么了 我该如何安装它 PS C Users luism gt gem install sqlite3 暂时增强 MSYS MINGW 的 PATH 安装所需的 msys2 软件包 mingw w64 x86 64 sqlite3 警告 未
  • 当我运行 rake:db migrate 命令时,出现错误“未初始化常量 CreateArticles”

    我创建了一个模型 ruby 脚本 生成模型文章 简单就够了 这是迁移文件create articles rb def self up create table articles do t t column user id integer t
  • 用于将唯一项插入数组的 Ruby 条件

    我知道如果你有一个array并将其引用为array uniq它将返回 没有任何重复项 然而 在本例中 它是一个对象数组 这是正确的 Ruby 语言吗 我希望每个电话都进入 calls数组除非call from与数组中已存在的 call fo
  • Rails cron 每当捆绑:命令未找到

    我尝试使用 每当 每天执行一次耙子任务 我收到这个错误 bin bash bundle command not found home app rvm rubies ruby 1 9 2 p180 lib ruby site ruby 1 9
  • 葡萄错误处理策略?

    我正在使用 Grape 和 Rails 创建 REST API 我已经有了基本的架构 并且正在寻找可以 清理 东西的地方 其中之一是错误处理 处理 我目前正在修复整个 API 的 root rb GRAPE API 基类 文件中的错误 我对
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • 在environment.rb中设置的常量在开发模式下消失

    了解 Rails 缓存如何工作的人可以真正帮助我 这是嵌套在 Rails Initializer run 块内的代码 config after initialize do SomeClass const set SOME CONST SOM
  • RSpec:重新打开类时存根 Rails.application.config 值不起作用?

    我在应用程序配置中定义了一个选项 我想要测试的类是在 gem 中定义的 不是我编写的 我想重新开课 Myclass class eval do if Rails application config myoption value1 some
  • jruby-openssl 中已初始化常量

    当在 Torquebox 上运行我的 Rails 应用程序时 我得到了很多 already initialized constant 警告源自gems jruby openssl 0 8 2 lib shared jruby openssl
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • 如何在 Rails 应用程序中选择性地跟踪方法及其文件访问?

    对于 Rails 应用程序 我想重载或修改 Kernel load 以便它打印出完整路径 例如puts gt File expand path File dirname FILE File basename FILE 对于加载的每个 Rai
  • 如何在 Ubuntu 中使用 gems?

    我最近升级到 Ubuntu 9 04 但在使用 gems 时遇到问题 我使用 apt get 安装了 Ruby Rubygems 和 Rails 这rails命令确实有效 然后我安装了 capistrano 和其他 gem 例如 herok
  • Twitter Bootstrap Modal 无法在 Rails 中工作

    我还很新Rails and to twitter bootstrap 我正在研究模态 但我收到了 NoMethodError 未定义的方法 渲染 当我删除 代码来自my release js erb页面 它消失但没有窗口出现 另外 还有错误
  • 使用 Rails3-autocomplete gem 时出现“自动完成方法不存在”错误

    在我的rails应用程序中 我尝试使用rails3 jquery autocomplete gem 我在 Gemfile 中包含了以下行 gem Rails3 jquery autocomplete 并提供捆绑安装及其在 gems 中列出
  • 将用户输入转换为整数

    所以我有一个用户可以输入价格的表格 我正在尝试创建一个 before validation 来规范化数据 如果用户放置 则剪裁它 before validation do unless self price blank then self
  • Heroku 带宽和空间

    Heroku 对于免费应用程序支持多少流量带宽和磁盘空间 Heroku 免费版有一个 5 MB 的数据库和 1 个 dyno dyno 是运行并响应请求的应用程序的实例 此外 您的 slug 的大小有 100 MB 的限制 这包括您使用的所

随机推荐

  • 有没有办法在多个特征上实现一个特征?

    为什么这不起作用 trait Update fn update mut self trait A trait B impl
  • 如何使用 Google Maps ios SDK 跟踪用户位置并显示行进路径

    我目前正在构建一个ios应用程序 我希望实现一个功能 其中用户的位置显示在Google地图视图上 并且当他们移动折线时显示用户迄今为止走过的路径 这显然需要实时发生 到目前为止 我已经初始化了 Google 地图视图 并且可以使用观察Key
  • URL 不带 .aspx 扩展名

    我注意到很多 ASP Net 站点没有以 aspx 结尾的 URL 一个例子是 https stackoverflow com questions 他们是否创建了一个 Questions 文件夹并将 Default aspx 放入其中 在这
  • 设置 Spring JPA 项目以在 MVC 项目中使用 - 创建 bean 时出错

    我在 eclipse 中开发了一个 Spring JPA 项目 它可以访问存储在 mysql 服务器中的数据 现在我需要将这个项目导入到 Spring MVC 项目中 所以 我在JPA项目的构建路径中配置导出maven依赖项 我将项目添加到
  • 将值从 HTML 传递到 SCSS

    我是 SCSS 的新手 不太确定如何使用它 我已经在 SO 和其他地方寻找解决方案 但找不到 我正在开发一个显示手机列表的应用程序 我通过调用 REST API 获取此列表 以 JSON 形式 所有手机都显示相同类型的信息 例如名称 型号
  • 如何使TabPages可拖动?

    我想让用户通过拖放来重新排列 TabPages 顺序 此外 如果用户能够将 TabPages 从一个 TabControl 拖动到另一个 TabControl 那就太酷了 两种方式都与 Firefox 和 Total Commander 类
  • 将 List[Either[A, B]] 转换为 Either[List[A], List[B]]

    如何转换List Either String Int to Either List String List Int 使用类似于猫的方法sequence 例如 xs sequence在下面的代码中 import cats implicits
  • 对月份(带字符串)排序算法

    我有这个月的数组 January March December October 我想把它排序如下 January March October December 我目前正在思考 如果 否则 可怕的级联 但我想知道是否还有其他方法可以做到这一点
  • 将 strsplit 应用于 data.frame 中的特定列

    我有一个包含分类信息的大型数据框 这是一个例子 gt d lt data frame x c 1 2 3 4 classification c cl1 scl1 cl2 cl3 bla cl4 subclass2 gt d x classi
  • onClick 事件未触发 |安卓

    我制作了一个非常简单的测试应用程序 其中包含一项活动和一种布局 这onClick第一次按下时不会触发 正如它应该的那样 活动 package com example mytest import android os Bundle impor
  • 无法 docker pull - 连接被拒绝

    我正在 ubuntu virtualbox 中从 docker 运行以下命令 并收到连接被拒绝错误 我位于公司代理后面 并配置了环境变量以使用代理以及用户名和密码 我还尝试使用代理链 root mbak1 VirtualBox sudo p
  • 有没有办法在 JSP 中填充地图?

    例如
  • 什么是“此处需要”错误

    它位于我的 Eclipse Problems 视图中 代码编译正常 但出现错误 required from here 指向一些 boost 头文件和行state data const current state interlocked co
  • 如何测试 Haskell 中的错误?

    我希望能够确保函数在接收到无效值时会抛出错误 例如 假设我有一个仅返回正数的函数 pos pos Int gt Int pos x x gt 0 x otherwise error Invalid Input 这是一个简单的例子 但我希望你
  • 冗余通用参数

    我有这两个接口和类 public interface Identifiable
  • 如何保护nodejs中的公共动态文件夹

    我在 public images picture jpg 中显示带有玉的图片 但我想保护某些图片或限制对公共文件夹的访问 该怎么做 project node modules public images image jpg javascrip
  • 如何在Excel中仅复制单元格的纯文本?

    我正在设计一个 Excel 工作表 用户将单击一个命令按钮来复制预定的单元格范围 然后 用户可以使用 Firefox 或 IE 将内容粘贴到 Web 应用程序中 Web 应用程序的设计超出了我的控制范围 目前用于数据输入的文本框是富文本输入
  • 为多个变量制作堆积条形图 - R 中的 ggplot2

    我在 ggplot2 中制作堆积条形图时遇到一些问题 我知道如何用 barplot 制作一个 但我想使用 ggplot2 因为很容易使条形具有相同的高度 如果我没有记错的话 使用 position fill 我的问题是我有多个变量 我想将它
  • 有效地找到独特的排列

    我有以下问题 我需要计算一个集合的排列 然而 该集合可能包含两个相同的元素 因此会导致重复排列 例如 给定集合 0 0 1 2 排列包括以下可能性 1 2 0 0 1 2 0 0 但是 我想避免类似的相同排列 在 MATLAB 中我可以简单
  • 验证一个字段或另一个字段是否存在 (XOR)

    如何验证一个或另一个字段的存在 但不能同时验证两个字段和至少一个字段的存在 如果您将条件添加到数值验证中 您的代码将起作用 如下所示 class Transaction lt ActiveRecord Base validates pres