验证 Rails 中多个属性之一是否存在

2024-04-26

在多语言应用程序中,用户可以输入自己的中文和英文姓名。用户可以输入其中之一或两者,但必须至少输入一个名称。

class Person < ActiveRecord::Base
  validates :zh_name, :presence => true
  validates :en_name, :presence => true
  validates :fr_name, :presence => true
end

由于内置的​​ :validates_presence_of 方法只能同时验证两个属性,有没有办法验证 Rails 中多个属性中至少一个的存在?

就像有魔力一样,validates_one_of :zh_name, :en_name, :fr_name

先感谢您,


validate :at_least_one_name

def at_least_one_name
  if [self.zh_name, self.en_name, self.fr_name].reject(&:blank?).size == 0
    errors[:base] << ("Please choose at least one name - any language will do.")
  end
end      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证 Rails 中多个属性之一是否存在 的相关文章

随机推荐

  • 始终“具有离线访问权限”|谷歌 OAuth 2

    我正在尝试使用 Google OAuth2 api 获取用户的个人资料 用户身份验证后 在同意页面上 总是要求我 具有离线访问权限 浏览器中的 URL 如下所示 https accounts google com o oauth2 auth
  • Ember Data 未找到模型,但它显然存在

    我和其他许多人一样将我的 ember 应用程序升级到了最新版本 但升级后 我的应用程序仍然无法工作 我已经简化了很多 这归结为我的路线 我的路线是这样的 按照过渡指南中的建议 App BoxesRoute Ember Route exten
  • c++ pthread - 如何使地图访问线程安全?

    我有一个映射作为成员变量和多个访问该映射的线程 读写访问 现在我必须确保只有一个线程可以访问该地图 但我该如何点呢 最好的解决方案是什么 Boost 包含一些用于共享访问的很好的锁实现 看看文档 http www boost org doc
  • Google Play 游戏服务 - 未显示解锁成就弹出窗口

    当我解锁成就时 成就已解锁 弹出窗口不会弹出 但成就已解锁 正如我在成就列表中看到的那样 我已经尝试过了this https stackoverflow com a 26474719 2543285解决方案 但它不起作用 我在 MainAc
  • 将 JSON 数据从 php 传递到 html-data 属性,然后传递到 Javascript

    我正在创建一个插件 用户可以在其中添加自定义设置data HTML 中的属性 设置采用 JSON 格式 我在 Javascript 中使用这些设置 它有preview base and paths特性 preview and base有字符
  • Zurb Foundation:如何在调整大小到较小的屏幕时使按钮变小?

    在 Zurb Foundation 4 中 是否有一种方法可以在浏览器尺寸调整得较小或在较小的屏幕上时自动切换到较小的按钮样式 例如 当屏幕是标准桌面屏幕时 请执行以下操作 a href class primary button Butto
  • 计算具有特定子集大小的集合分区

    给定一组n元素 我需要找到该集合的所有分区k大小几乎相等的子集 例如 对于一个包含 7 个元素和 3 个子集的集合 我只需要其中有两个子集 每个子集包含 2 个元素 和一个子集包含 3 个元素的分区 我不想要一个包含 1 2 和 4 个元素
  • Visual Studio Javascript 断点未命中,为什么?

    可以为 javascript 代码块设置断点 如下图所示 我们如何使用它们 VS总是忽略 如果调试时将 Internet Explorer 设置为浏览器 理论上 Visual Studio 能够在客户端脚本设置的断点处停止 要使用该功能 您
  • Java Diffie-Hellman 密钥交换

    我正在尝试执行代码来执行 Diffie Hellman 密钥交换 我从网上的一个示例中获取了代码 现在忘记在哪里了 我必须导入 bouncycastle jar 我认为它在执行之前一直有效 my code package testproje
  • Golang - 如何在特定时间执行函数

    我需要在一天中的特定时间运行一个函数 例如 0010 0610 1210 1810 我目前的方法使用自动收报机for range time Tick 21600 time Second 我以这些时间间隔之一 例如 1210 手动启动该程序
  • C:如何将多位数分解为单独的变量?

    假设我在 C 中有一个多位整数 我想将它分解为一位数整数 123会变成1 2 and 3 我该如何做到这一点 特别是如果我不知道整数有多少位 int value 123 while value gt 0 int digit value 10
  • 如何在 openpyxl 进行更改时观察 Excel 文件更改

    我构建了一个 iOS 应用程序 它接受用户的输入 然后将其数据作为 csv 文件上传到 dropbox 现在 我想构建一个跨平台桌面应用程序 使用 openpyxl 和 Python dropbox api 来侦听这些 csv 上传 然后将
  • 如何在 Windows 中为高级网络适配器属性设置巨型数据包和接收/传输缓冲区?

    我正在尝试为网络适配器设置一些高级属性 例如巨型数据包 接收 发送缓冲区 我尝试使用 Win32 NetworkAdapter Win32 NetworkConnection Win32 NetworkAdapterConfiguratio
  • fab风格钻石如何使用?

    How to use diamond style for fab bottom app bar In the sketch files on the website https material io tools theme editor
  • 如何使用 powershell 以编程方式查找用户 HKEY_USERS 注册表项?

    我想知道如果您知道本地计算机上该用户的登录名 是否有办法在 HKEY USERS 中找到该用户的注册表项 我想以编程方式将内容添加到特定用户的注册表项 例如自动运行 但我只知道用户名 如何确定 HKEY USERS 中的哪些神秘用户实际上属
  • 如何在 Kaxaml 中引用不同的 DLL

    我想在 Kaxaml 中使用 DataGrid 如何引用工具包 dll Copy WPFToolkit dll to C Program Files Kaxaml 重新启动 Kaxaml 现在你可以使用这样的命名空间 xmlns dg cl
  • 三.js Raycaster intersectObjects

    我正在尝试修改这个例子 https github com timoxley threejs blob master examples webgl morphtargets md2 control html来自 Three js 通过鼠标点击
  • 错误:没有匹配的函数可供调用

    我在代码中收到 没有匹配的函数来调用错误 该代码在另一个类的构造函数中创建一个类的实例 代码如下 inline DiscriminatorContainer DiscriminatorContainer ushort id FebPtr f
  • 可以在 swift 中创建静态分配的数组吗?

    我想在 swift 中创建一个结构体 它有少量固定数量的值 比如 16 个浮点数 作为实例数据 要求该结构体不将这些值存储在堆上 以便结构体实例的地址就是实例变量的地址 还要求这些值可以通过下标在结构内部访问 就像数组一样 在 C 语言中
  • 验证 Rails 中多个属性之一是否存在

    在多语言应用程序中 用户可以输入自己的中文和英文姓名 用户可以输入其中之一或两者 但必须至少输入一个名称 class Person lt ActiveRecord Base validates zh name presence gt tru