Class: PresenceOnlyIfValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Includes:
ActiveSupport::Inflector
Defined in:
app/validators/presence_only_if_validator.rb

Instance Method Summary collapse

Instance Method Details

#validate_each(record, attribute, _value) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
# File 'app/validators/presence_only_if_validator.rb', line 4

def validate_each(record, attribute, _value)
  condition = options[:with]

  if condition.is_a?(Symbol)
    evaluate_condition(record, attribute, ->(record) { record.send(condition) })
  elsif condition.respond_to?(:call)
    evaluate_condition(record, attribute, condition)
  else
    raise 'Invalid option'
  end
end