Class: ActiveModel::Validations::ModerateValidator

Inherits:
EachValidator
  • Object
show all
Defined in:
lib/moderate/text_validator.rb

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/moderate/text_validator.rb', line 6

def validate_each(record, attribute, value)
  return if value.blank?

  begin
    text = value.to_s
    return if text.nil?

    if Moderate::Text.bad_words?(text)
      record.errors.add(attribute, options[:message] || Moderate.configuration.error_message)
    end
  rescue Moderate::Error => e
    Rails.logger.error "Moderate validation error: #{e.message}"
    record.errors.add(attribute, "Moderation check failed: #{e.message}")
  rescue StandardError => e
    Rails.logger.error "Unexpected error in moderate validation: #{e.message}"
    record.errors.add(attribute, "Moderation check failed")
  end
end