Module: ActiveRecord::Validations
- Extended by:
- ActiveSupport::Concern
- Includes:
- ActiveModel::Validations
- Included in:
- Base
- Defined in:
- lib/active_record/validations.rb,
lib/active_record/validations/presence.rb,
lib/active_record/validations/associated.rb,
lib/active_record/validations/uniqueness.rb
Overview
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?
.
Defined Under Namespace
Modules: ClassMethods Classes: AssociatedValidator, PresenceValidator, UniquenessValidator
Instance Method Summary collapse
-
#save(options = {}) ⇒ Object
The validation process on save can be skipped by passing
validate: false
. -
#save!(options = {}) ⇒ Object
Attempts to save the record just like Base#save but will raise a
RecordInvalid
exception instead of returningfalse
if the record is not valid. -
#valid?(context = nil) ⇒ Boolean
(also: #validate)
Runs all the validations within the specified context.
-
#validate!(context = nil) ⇒ Object
Runs all the validations within the specified context.
Instance Method Details
#save(options = {}) ⇒ Object
The validation process on save can be skipped by passing validate: false
. The regular Base#save method is replaced with this when the validations module is mixed in, which it is by default.
36 37 38 |
# File 'lib/active_record/validations.rb', line 36 def save(={}) perform_validations() ? super : false end |
#save!(options = {}) ⇒ Object
Attempts to save the record just like Base#save but will raise a RecordInvalid
exception instead of returning false
if the record is not valid.
42 43 44 |
# File 'lib/active_record/validations.rb', line 42 def save!(={}) perform_validations() ? super : raise_record_invalid end |
#valid?(context = nil) ⇒ Boolean Also known as: validate
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 :create
if new_record?
is true
, and to :update
if it is not.
Validations with no :on
option will run no matter the context. Validations with some :on
option will only run in the specified context.
56 57 58 59 60 |
# File 'lib/active_record/validations.rb', line 56 def valid?(context = nil) context ||= (new_record? ? :create : :update) output = super(context) errors.empty? && output end |
#validate!(context = nil) ⇒ Object
Runs all the validations within the specified context. Returns true
if no errors are found, raises RecordInvalid
otherwise.
If the argument is false
(default is nil
), the context is set to :create
if new_record?
is true
, and to :update
if it is not.
Validations with no :on
option will run no matter the context. Validations with some :on
option will only run in the specified context.
72 73 74 |
# File 'lib/active_record/validations.rb', line 72 def validate!(context = nil) valid?(context) || raise_record_invalid end |