gpt4 book ai didi

ruby-on-rails - 删除或覆盖由父类(super class)或混合添加的 ActiveRecord 验证

转载 作者:数据小太阳 更新时间:2023-10-29 06:30:17 26 4
gpt4 key购买 nike

我在我的 Rails 应用程序中使用 Clearance 进行身份验证。 Clearance::User mixin 向我的 User 模型添加了一些验证,但其中有一个我想删除或覆盖。这样做的最佳方法是什么?

有问题的验证是

validates_uniqueness_of :email, :case_sensitive => false

这本身还不错,但我需要添加 :scope => :account_id。问题是,如果我将其添加到我的 User 模型

validates_uniqueness_of :email, :scope => :account_id

我得到了两种验证,而且 Clearance 添加的验证比我的更严格,所以我的没有效果。我需要确保只有我的运行。我该怎么做?

最佳答案

我会 fork GEM 并添加一个简单的检查,然后可以覆盖它。我的例子使用了一个问题。

关注点:

module Slugify

extend ActiveSupport::Concern

included do

validates :slug, uniqueness: true, unless: :skip_uniqueness?
end

protected

def skip_uniqueness?
false
end

end

型号:

class Category < ActiveRecord::Base
include Slugify

belongs_to :section

validates :slug, uniqueness: { scope: :section_id }

protected

def skip_uniqueness?
true
end
end

关于ruby-on-rails - 删除或覆盖由父类(super class)或混合添加的 ActiveRecord 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309757/

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