gpt4 book ai didi

activerecord - 验证存在和唯一性,Rails 4

转载 作者:行者123 更新时间:2023-12-04 07:13:49 24 4
gpt4 key购买 nike

我的模型中有此代码:

  validates :user, presence: true, uniqueness: {scope: :project}

单独的验证器,存在性和唯一性,如果另一个不存在,每个验证器都可以正常工作。但如果它们都如上所示,预感验证器将停止工作。当我尝试保存具有 nil 用户的对象时,没有收到正常的保存错误,而是出现异常:

NoMethodError: 未定义的方法“属性”为 nil:NilClass 来自/usr/local/lib/ruby/gems/2.0.0/gems/activerecord-4.0.2/lib/active_record/validations/uniqueness.rb:56:in `build_relation '

这是 ActiveRecord 中的错误还是我做错了什么?

最佳答案

找到了解决方案( https://github.com/thoughtbot/shoulda-matchers/issues/459 ),但我认为这不是最好/正确的方法。只需添加 allow_nil: true .

那么它应该是这样的:
validates :user, presence: true, uniqueness: {scope: :project}, allow_nil: true

关于activerecord - 验证存在和唯一性,Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25982889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com