Railsエンジンからいくつかのカスタムバリデーターを読み込もうとしていますが、バリデーターが認識されないため、アプリケーションが失敗し続けます。
エンジンのバリデーターを初期化する適切な方法と時間は何ですか?
たとえば、私は持っています:
class NullityValidator < ActiveModel::EachValidator
# Validates whether <tt>value</tt> is <tt>nil?</tt>.
def validate_each(record, attribute, value)
record.errors.add(attribute, :not_nil) unless value.nil?
end
end
エンジンクラス内から、Engine < Rails::Engine
次のようなカスタムバリデーターを初期化するためのいくつかの異なる方法を試しました。
config.before_initialize do
class NullityValidator < ActiveModel::EachValidator
end
end
config.after_initialize do
class NullityValidator < ActiveModel::EachValidator
end
end
initializer 'ab_gem.validators' do |app|
ActiveSupport.on_load :active_model do
class NullityValidator < ActiveModel::EachValidator
end
end
end
initializer 'ab_gem.validators' do |app|
ActiveSupport.on_load :active_record do
class NullityValidator < ActiveModel::EachValidator
end
end
end
initializer 'ab_gem.validators' do |app|
class NullityValidator < ActiveModel::EachValidator
end
end
また、これらをカスタムモジュールに移動してロードしようとしましたが、これらのメソッドのいずれも正しく初期化/ロードされていません。
アプリケーションモデルがロードされているときはいつでも、Unknown validator: 'NullityValidator'