module DuckRecord::Validations

Active Record Validations

Active Record includes the majority of its validations from ActiveModel::Validations all of which accept the :on argument to define the context where the validations are active. Active Record will always supply either the context of :create or :update dependent on whether the model is a new_record?.

Public Instance Methods

valid!(context = nil) click to toggle source
# File lib/duck_record/validations.rb, line 47
def valid!(context = nil)
  if valid?(context)
    true
  else
    raise RecordInvalid.new(self)
  end
end
valid?(context = nil) click to toggle source

Runs all the validations within the specified context. Returns true if no errors are found, false otherwise.

Aliased as validate.

If the argument is false (default is nil), the context is set to :default.

Validations with no :on option will run no matter the context. Validations with some :on option will only run in the specified context.

Calls superclass method
# File lib/duck_record/validations.rb, line 41
def valid?(context = nil)
  context ||= default_validation_context
  output = super(context)
  errors.empty? && output
end
Also aliased as: validate
validate(context = nil)
Alias for: valid?

Private Instance Methods

default_validation_context() click to toggle source
# File lib/duck_record/validations.rb, line 59
def default_validation_context
  :default
end
perform_validations(options = {}) click to toggle source
# File lib/duck_record/validations.rb, line 63
def perform_validations(options = {})
  options[:validate] == false || valid?(options[:context])
end