问题标签 [validates-uniqueness-of]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
313 浏览

ruby-on-rails - rails中的双向图

我有一个简单的模型“匹配”,它应该保存两个对象(同类)之间的双向链接。

我遇到的问题是,对于我发现的每个双向匹配,我都会得到两个数据库条目。例如 1:obj1 -> obj2,2:obj2 -> obj1

我怎样才能validates_uniqueness_of在这里避免这种情况?我试过了

但这没有用。

0 投票
3 回答
45225 浏览

ruby-on-rails - validates_uniqueness_of 传递 nil 或空白(没有 allow_nil 和 allow_blank)

如果值为 nil 或空白,ActiveRecord 的唯一性验证器具有跳过验证的选项。即使我将两个参数都设置为 true (默认行为),我也可以在验证命中之前创建一个带有 nil 和空白的记录。我使用默认的 SQlite3 数据库 sqlite3-ruby (1.2.5)。

编辑澄清:如果我添加validates_presence_of到模型中,我会得到预期的结果。我认为默认行为validates_uniqueness_of会使这变得多余。

测试用例:

app/models/thing.rb 的内容:

导轨控制台:

为什么前两个创作通过了?

谢谢

0 投票
2 回答
4552 浏览

ruby-on-rails - Rails:按日期验证范围的唯一性

我有一个 Rails 模型,应该只允许每个用户每天保存/更新一次模型。我有一个回调来按用户和日期进行查找,然后添加到错误中,但这很丑陋并且感觉不像轨道。我有典型的 created_at / updated_at 列(时间部分很重要/我需要保留它)。

所以我想我可以:

1)创建另一个模型属性,它只是创建日期和范围(bleh)

2)使用 :scope 属性,但以某种方式只获取 created_at 的日期部分,例如 validates_uniqueness_of :user, :scope => :created_at.to_date (显然不起作用)

3) 验证除非 => Proc.new{ |o| 与我现有回调匹配的 Finder }(总)

http://ar.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M000086

这些不会太多,但我宁愿它是用 SQL 而不是 Ruby 完成的(出于明显的可伸缩性原因)。

有什么想法吗?有没有更好的办法?

0 投票
1 回答
207 浏览

ruby-on-rails - 忽略特定的验证错误

我有Labellings哪个属于EmailsLabels

每个标签对于电子邮件/标签对必须是唯一的 - 因此一封电子邮件只能被标记为“测试”一次。

我正在这样做validates_uniqueness_of :label_id, :scope => :email_id。这按预期工作。

当我标记电子邮件时,如果它是唯一的,我想添加标签,如果电子邮件已经用该标签标记,则不执行任何操作。

我不想在我的应用程序周围复制验证功能,例如:

是否可以确保每个标签都有一个唯一的 email_id/label_id 对,而无需手动检查或处理异常?

0 投票
1 回答
7404 浏览

ruby-on-rails - Rails validates_uniqueness_of 跨越多个不区分大小写的列

我有一个模型,它有两个字段,我将其称为 first_name 和 last_name,并且我想确保两者的组合是不区分大小写的唯一的。通过使用这个,我已经完成了一半:

问题是唯一性检查似乎是区分大小写的,即使文档说默认情况下它应该不区分大小写。所以给定一个现有的记录:

这将被允许:

以及在名字或姓氏中有任何大小写变化的任何附加记录。为什么允许这些记录?如何在两个字段中强制执行不区分大小写的唯一性?

0 投票
1 回答
526 浏览

core-data - 核心数据唯一性

有什么方法可以验证核心数据实体属性中更新的值与集合中其他实体中的属性值的对比?

目前我创建了一个具有一些默认值的实体,将其添加到arrangedObjects,然后让用户修改各种属性值。但是,我想检查一个特定的属性,并确保数组中没有其他实体具有与该属性相同的值。最好的方法是什么?

非常感谢,丹妮。

0 投票
1 回答
20052 浏览

ruby-on-rails - Rails 3:验证组合值

在 Rails 2.x 中,您可以使用验证来确保您具有唯一的组合值,如下所示:

在相应的迁移中,它可能如下所示:

这将确保丈夫/妻子组合在数据库中是唯一的。现在,在 Rails 3 中,验证语法发生了变化,范围属性似乎消失了。现在看起来像:

知道如何在 Rails 3 中实现组合验证吗?Rails 2.x 验证在 Rails 3 中仍然有效,所以我仍然可以使用第一个示例,但它看起来很“旧”,有更好的方法吗?

0 投票
5 回答
6882 浏览

ruby-on-rails - validates_uniqueness_of 在被破坏的嵌套模型导轨中

我有一个项目模型,它接受任务的嵌套属性。

任务模型中的唯一性验证在更新项目时会出现问题。

在项目编辑中,我删除了一个任务 T1,然后添加了一个同名的新任务 T1,唯一性验证限制了项目的保存。

参数哈希看起来像

在销毁旧任务之前完成任务验证。因此验证失败。知道如何验证它不认为任务被破坏吗?

0 投票
1 回答
220 浏览

ruby-on-rails - 在 Rails 中,如何验证不是唯一性的字段?

我可以进行与 validates_uniqueness_of 完全相反的验证吗?即我想在数据库中不存在用户输入时显示错误消息。

谢谢大家。:)

0 投票
2 回答
14322 浏览

ruby-on-rails - Rails 唯一性约束和匹配空列的数据库唯一索引

我的迁移文件中有以下内容

我想确保如果指定了 product_id 它是唯一的,但我也想允许 null 所以我的模型中有以下内容:

效果很好,但我应该在迁移文件中添加一个索引

显然,当为 product_id 插入两个空值时,这将引发异常。我可以简单地省略迁移中的索引,但是我有可能得到两个具有相同 product_id 的 PaymentAgreements,如下所示:并发性和完整性

我的问题是处理这个问题的最好/最常见的方法是什么