module ActiveRecord::Validations
Active Record Validations
Active Record includes the majority of its validations from ActiveModel::Validations
.
In Active Record, all validations are performed on save by default. Validations accept the :on
argument to define the context where the validations are active. Active Record will pass either the context of :create
or :update
depending on whether the model is a new_record?
.
Public instance methods
The validation process on save can be skipped by passing validate: false
. The validation context can be changed by passing context: context
. The regular ActiveRecord::Base#save
method is replaced with this when the validations module is mixed in, which it is by default.
Source code GitHub
# File activerecord/lib/active_record/validations.rb, line 47
def save(**options)
perform_validations(options) ? super : false
end
Attempts to save the record just like ActiveRecord::Base#save
but will raise an ActiveRecord::RecordInvalid
exception instead of returning false
if the record is not valid.
Source code GitHub
# File activerecord/lib/active_record/validations.rb, line 53
def save!(**options)
perform_validations(options) ? super : raise_validation_error
end
Also aliased 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. If the argument is an array of contexts, post.valid?([:create, :update])
, the validations are run within multiple contexts.
Validations with no :on
option will run no matter the context. Validations with some :on
option will only run in the specified context.
Source code GitHub
# File activerecord/lib/active_record/validations.rb, line 69
def valid?(context = nil)
context ||= default_validation_context
output = super(context)
errors.empty? && output
end
Alias for:
valid?
.
Namespace
Definition files
activerecord/
lib/ active_record/ validations.rb activerecord/
lib/ active_record/ validations/ absence.rb activerecord/
lib/ active_record/ validations/ associated.rb activerecord/
lib/ active_record/ validations/ numericality.rb activerecord/
lib/ active_record/ validations/ presence.rb activerecord/
lib/ active_record/ validations/ uniqueness.rb