私の Rails 3.2.11 アプリケーションでは、論理的に削除されたレコードを無視するために、条件をサポートする一意性バリデーターが必要です。GitHub でそれを行うプル リクエストを見つけました (https://github.com/rails/rails/pull/5321) が、この機能は現在の Rails リリースの一部ではないようです。次に、次のような UniquenessValidator クラスのパッチを作成しました。
module UniquenessValidatorExtension
def build_relation(klass, table, attribute, value)
relation = super
relation.merge!(options[:conditions]) if options[:conditions]
relation
end
end
ActiveRecord::Validations::UniquenessValidator.send :include, UniquenessValidatorExtension
これをロードするために、イニシャライザを作成しました。問題は、私のメソッドが呼び出されないことです。私は何を間違っていますか?
現在のUniquenessValidatorクラスへのリンクは次のとおりです。