问题标签 [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.
ruby-on-rails - Rails validates_uniqueness_of with 除非对自身进行验证
我正在使用 rails 进行身份验证,并且想要验证用户名的唯一性,除非另一个用户名被设置为临时帐户。
示例:我们设置了一个用户帐户,其名称为:“buddy”,电子邮件为:“placeholder@email.com”
用户来并创建一个帐户。如果唯一的其他好友帐户与电子邮件相关联,我们希望用户能够使用名称“buddy”:“placehoder@gmail.com”。
基本上我想做一些事情:
这样做的正确方法是什么?
ruby-on-rails - ActiveRecord `unscoped` 从不同的数据库返回模型但具有相同的名称
更新:好吧,所以我调试了 Rails,发现它发生是因为我的两个表都命名相同。
validates_uniquness_of
调用unscoped
模型的类。unscoped
返回遗留表中的所有行。
原始帖子:我正在创建将遗留数据从一个 Rails 应用程序迁移到另一个应用程序(两个数据库都是 Postgresql)。
我的新应用程序validates_uniqueness_of
对其中一个模型进行了验证。
正如这里所解释的,我创建了与遗留数据库建立连接的遗留模型类(使用establish_connection :legacy
)。在应用程序级迁移期间,我从旧表中复制模型数据,以在我的新应用程序中逐行创建新模型。该过程在第一次创建模型时失败,因为唯一性验证失败(即使新数据库仍然是空的)。
这让我相信validates_uniqueness_of
出于某种原因也考虑了遗留数据库。
具有验证的模型表在旧数据库和新数据库中具有相同的名称。
ruby-on-rails - 仅当匹配现有记录的一个属性不等于特定值时,如何验证_uniqueness_of 的范围为两个属性?
我有一个Invitation
模型代表加入订阅的邀请。在任何给定时间应该只有一个Invitation
具有特定email
/subscription_id
组合的记录,除非具有匹配email
/的其他记录subscription_id
也具有state
of 'declined'
。
鉴于 email 和 subscription_id 组合是唯一的,我目前可以验证唯一性:
我的Invitation
模型:
Rspec(通过):
state
但是,如果数据库中的匹配模型的 a等于,我想跳过唯一性检查'declined'
。
如果现有模型的状态为“已拒绝”,则验证应通过。
首先想到的是:
但这是错误的,因为它检查新创建的模型是否具有“拒绝”状态,我想检查以前存在的记录是否具有'declined'
.
我也试过这个:
但这失败了,因为我认为是同样的原因。
我将如何编写检查附加范围的验证?
我想写类似下面的东西,但这只是用来帮助解释我的想法的语法:
更新:
我这样做了,它奏效了:
ruby-on-rails-4 - validates_uniqueness_of 的 Rspec 测试在应该失败时通过
我对 Rspec 测试相当陌生,这非常令人沮丧。
我有一个模型,它使用validates_uniqueness_of来防止创建重复条目。(我知道这不能保证,首选方法是使用数据库级别的约束,但目前不相关)。
问题是我的 Rspec 测试似乎表明可以在表中创建 2 个具有相同 user_id 和 board_id 的条目,即使在实践中,在控制台和应用程序本身中,这无法完成。
模型/主持人_join.rb
规范/模型/moderator_join_spec.rb
控制台输出
ruby-on-rails - rspec mongoid 唯一性验证
我想测试用户模型的唯一性。
我的User
模型类看起来像:
我属于模型的 rspec 测试如下所示:
在我执行之后bundle exec rspec
,它总是引发下一个错误,而不是成功通过:
如果我使用它,它会成功通过:
我想用expect(...)
. 有人可以帮帮我吗?
php - Phalcon PHP:测试自然键的唯一性?
我有一些这样的代码:
这适用于除自然主键之外的所有列。也就是说,不是代理键的主键(自动递增整数)。例如,在 job_titles 表中,自然键列是“job_title”——在我们的例子中,它指的是职位名称。这个名称应该是唯一的,我希望能够在保存之前在代码中检查它。然而,不知何故,Phalcon 很高兴地忽略了它。
我现在实际上正在为此设置一个单元测试并执行类似于以下的操作:
永远不会抛出异常。数据库中的最终结果是带有 Desc A 的第一个唯一测试的单列,而第二个测试没有记录。但我没有抛出异常。
有什么想法吗?
编辑:
此外,我尝试使用 ->create() 函数代替 save() 函数。
ruby-on-rails - MongoId 组合唯一性索引
我有三个模型
一个人可以在多个 Org 中,但只能在一个 OrgGroup 中。
我需要为组织中的人类设置唯一性索引。
我怎么能做到这一点?
ruby-on-rails - Rspec ignores uniqueness validation
I don't want rspec to let me save two objects of the class with the same name, however it does. Is there something I'm missing?
My model:
my test:
this is what I get:
I can even write two times FactoryGirl.create, it just saves.
However if I switch over to rails console and try to create two objects with two identical names, I receive an error. Something wrong with my testing environment?
ruby-on-rails - 使用 has_many :through 关联和 accept_nested_attributes_for 进行唯一性验证
是否可以在 has_many through: 关联中使用 Accepts_nested_attributes_for 仅在不重复时才创建子代。否则只在连接表中创建关系?
我有一个可以有很多电子邮件的列表。反过来也是可能的。请参阅下面的模型。
这是列表视图_form。
这是有关“更新”的操作和 list_params 方法。
在视图表单中,我可以将新电子邮件添加到列表中。问题是当我尝试添加重复的电子邮件时。验证和保存被拒绝。
在这里,我通过 Rails 控制台插入了一个副本。
错误:
电子邮件名称已被占用
我的目标是:
- 如果电子邮件名称尚未出现在“电子邮件”中,则在“电子邮件”表中创建一个电子邮件。然后在“emails_lists”中创建电子邮件和列表之间的关系。
- 如果电子邮件名称重复,则查找重复项并仅在“emails_lists”中创建电子邮件和列表之间的关系。
编辑
我发现这篇文章描述了一个类似的问题: rails validate nested attributes
哈克
我找到了一个自定义黑客来解决我的问题。我认为该解决方案对于其他情况是可移植的。我认为这不是最佳做法,但它似乎适用于添加/删除案例。
ruby-on-rails - 每节课验证每个用户的唯一性记录 // Rails 4
问题:我希望每个视频每个用户只有 1 个 UserLesson, 因为我正在构建一个跟踪系统(进度系统)用户应该能够看到剩余的课程/总课程还有多少课,并且当标记为已完成时应该添加 css
我将数据从视图发送到控制器:
控制器接收数据并启动创建方法
这是模型关系
我的猜测是验证每个用户和课程的用户课程的唯一性。但是似乎无法工作得到错误消息。