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
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