问题标签 [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 忽略范围
我对 Rails 很陌生,并且在 Rails/ActiveRecord 似乎忽略validates_uniqueness_of
了我继承的项目中声明的范围时遇到了麻烦。我有以下模型:
有一个现有的用户记录,其中一个email
offoo@bar.com
和一个brand_id
of 1
。
尝试使用id
of 123
、email
offoo@bar.com
和brand_id
of更新另一个用户记录时,2
出现Validation failed: Email has already been taken
错误。
发生此错误时,我看到以下两个查询一个接一个地运行:
看起来第二个查询正在执行正确的唯一性检查,但第一个查询忽略了范围。
任何有关查看内容或如何进一步调试的提示将不胜感激。
ruby-on-rails - 唯一性验证不适用于has_many:尽管rails 5上的关联
楷模
能够在页面和用户页面上创建多个用户,就像没有调用验证一样。
ruby-on-rails - Rails 唯一性验证似乎不起作用
我的产品模型在下面有这个验证规则,在测试规则时,我发现 uniqueness: true for :title 实际上什么也没做。
例如,如果我像这样创建两个具有相同标题的实例,
我不明白为什么唯一性根本不起作用?
ruby-on-rails - 我正在尝试在 Rails 上使用区分大小写的唯一性,但测试失败
我目前正在关注关于 ruby on rails 的 Michael Hartl 教程。每次我运行模型时:测试由于电子邮件的唯一性而失败。尽管我已经在模型中说明了这一点。我想在开始向 Web 应用程序添加数据之前解决这个问题。
这是我的 user.rb
这是我的 user_test.rb
ruby-on-rails - 使用 rspec 测试 Rails 模型中字段唯一性的验证,而不使用辅助 gem
我正在尝试编写测试来验证 RoR 模型中字段的唯一性。
我正在开发 Ruby on Rails 应用程序,我用它来练习我的 TDD 技能。到目前为止,我一直使用 Internet 作为我的资源。我正在编写模型验证测试。我不会使用“should”、“FactoryGirl”(等)gem。我知道使用这些 gem 可以为我节省大量编码,但我最终会使用这些 gem。我想学习如何在没有 gem 的情况下自己编写 rspec 测试,以帮助我了解如何编写测试。到目前为止,我做得很好,直到“唯一性”测试。
如何在不使用“should”、“FactoryGirl”(等)gem 的情况下创建测试以验证“用户”模型中“电子邮件”字段的唯一性。我知道使用这些 gem 会节省大量编码,但我最终会使用这些 gem。我想学习如何在没有 gem 的情况下自己编写 rspec 测试,以帮助我了解如何编写测试。
Stackoverflow(以及网络上的其他地方)对这个问题的大多数“答案”都包括使用这些辅助 gem。但是没有宝石就找不到答案。
这是模型,User.rb
```
And here is `user_spec.rb`.
```
我如何写来测试唯一性。我应该使用“主题”以外的其他东西进行测试吗?请记住,这次我不想要使用 gems (Shoulda/FactoryGirl/etc) 的解决方案。
在过去的几天里,我一直在这样做,但没有运气。有什么解决办法吗?Ruby on Rails 上关于 rspec 的最佳教程在哪里?
ruby-on-rails - 验证关联表属性的唯一性
我正在努力实现以下目标:
- 创建一个验证器以确保每个用户都有一个唯一的专辑“名称”。
请在下面查看我的代码:
协作.rb
用户.rb
专辑
专辑控制器.rb
我在专辑模型中尝试了以下内容:
还有一些像这样的自定义验证器:https ://github.com/rails/rails/issues/20676适用于嵌套形式,但所有这些都没有成功。
我没有想法..非常感谢您的帮助
ruby-on-rails - Ruby On Rails 设计:如何在注册期间避免电子邮件唯一性验证并重写以检查它是否只有在角色“X”时才唯一
我想中断我的 rails 应用程序中的默认注册操作,更改电子邮件验证。我需要的只是只有当该用户已经注册并且具有角色时才具有唯一的电子邮件字段'X'
。
我尝试了以下方法,但我的应用程序返回"Email has already been taken"
消息:
验证:
(我会很高兴有任何帮助)
ruby-on-rails - 在与 ruby on rails 具有多态关联的模型上验证时间重叠
我正在尝试在模型中创建验证(我认为实际上在数据库级别验证它会更好)所以用户不能购买和已经购买的物品在 2 天的时间间隔内(2 天后没关系如果他/她再次购买)。
我有一个“购买”动作的模型,每个购买动作都有一个关联的项目,称为“可购买”。此外,每个购买操作都有一个关联的 user_id。
我在购买模型中尝试这样(但我的问题是我不知道如何正确编写此验证,甚至在编写方法时如何检索“purchasable.id”或“user.id”验证)
购买及其可购买的外观如下:
现在它没有通过我的测试,似乎它不允许保存任何购买:
失败信息:
失败:
ruby-on-rails - 验证由另一个属性存在范围内的属性的唯一性
如果我需要验证所有者范围内的猫名的唯一性,以便没有所有者可以拥有许多同名的猫,我可以使用它:
validates_uniqueness_of :name, scope: :owner_id
但是我如何验证猫是否拥有所有者的唯一性?
所以所有有主人的猫都有唯一的名字。
所有没有主人的猫都有唯一的名字。
所以它的范围类似于scope: self.owner.present?
.
我可以在不使用自定义验证方法的情况下使用验证助手吗?