Class: AlsoValidates::Validation

Inherits:
ActiveModel::Validator
  • Object
show all
Defined in:
lib/also_validates/validation.rb

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Validation

Returns a new instance of Validation.



4
5
6
7
# File 'lib/also_validates/validation.rb', line 4

def initialize(args)
  options = args[:models].extract_options!
  @options = options.merge(:models => args[:models])
end

Instance Method Details

#validate(record) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/also_validates/validation.rb', line 9

def validate(record)
  options[:models].each do |model|
    model_instance = record.send(model)
    next if options[:allow_nil] && model_instance.nil?
    if !options[:allow_nil] && model_instance.nil?
      record.errors.add(:base, model.to_s.classify.humanize + " can't be blank")
    else
      unless model_instance.valid?
        model_instance.errors.full_messages.each do |error_message|
          record.errors.add(:base, error_message)
        end
      end
    end
  end
end