Module: ActiveRecord::Validations
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
|
|
Instance Chain:
|
|
Defined in: | activerecord/lib/active_record/validations.rb, activerecord/lib/active_record/validations/associated.rb, activerecord/lib/active_record/validations/presence.rb, activerecord/lib/active_record/validations/uniqueness.rb |
Overview
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?
.
::ActiveModel::Validations - Attributes & Methods
- ._validators rw
- #_validators readonly
- ._validators? ⇒ Boolean rw
- #_validators? ⇒ Boolean readonly
- #validation_context readonly
Class Method Summary
::ActiveModel::Naming - self
param_key | Returns string to use for params names. |
plural | Returns the plural class name of a record or class. |
route_key | Returns string to use while generating route names. |
singular | Returns the singular class name of a record or class. |
singular_route_key | Returns string to use while generating route names. |
uncountable? | Identifies whether the class name of a record or class is uncountable. |
::ActiveSupport::Concern - Extended
Instance Method Summary
-
#save(options = {})
The validation process on save can be skipped by passing
validate: false
. -
#save!(options = {})
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)
Alias for #valid?.
-
#validate!(context = nil)
Runs all the validations within the specified context.
::ActiveModel::Validations::HelperMethods - self
#validates_absence_of | Validates that the specified attributes are blank (as defined by Object#blank?). |
#validates_acceptance_of | Encapsulates the pattern of wanting to validate the acceptance of a terms of service check box (or similar agreement). |
#validates_confirmation_of | Encapsulates the pattern of wanting to validate a password or email address field with a confirmation. |
#validates_exclusion_of | Validates that the value of the specified attribute is not in a particular enumerable object. |
#validates_format_of | Validates whether the value of the specified attribute is of the correct form, going by the regular expression provided. |
#validates_inclusion_of | Validates whether the value of the specified attribute is available in a particular enumerable object. |
#validates_length_of | Validates that the specified attribute matches the length restrictions supplied. |
#validates_numericality_of | Validates whether the value of the specified attribute is numeric by trying to convert it to a float with |
#validates_presence_of | Validates that the specified attributes are not blank (as defined by Object#blank?). |
#validates_size_of |
::ActiveModel::Validations - Included
#errors | Returns the |
#invalid? | Performs the opposite of #valid?. |
#read_attribute_for_validation | Hook method defining how an attribute value should be retrieved. |
#valid? | Runs all the specified validations and returns |
#validate | Alias for ActiveModel::Validations#valid?. |
#validates_with | Passes the record off to the class or classes specified and allows them to add errors based on more complex conditions. |
Class Attribute Details
._validators (rw)
[ GitHub ]# File 'activemodel/lib/active_model/validations.rb', line 53
class_attribute :_validators, instance_writer: false
._validators? ⇒ Boolean
(rw)
[ GitHub ]
# File 'activemodel/lib/active_model/validations.rb', line 53
class_attribute :_validators, instance_writer: false
Instance Attribute Details
#_validators (readonly)
[ GitHub ]# File 'activemodel/lib/active_model/validations.rb', line 53
class_attribute :_validators, instance_writer: false
#_validators? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activemodel/lib/active_model/validations.rb', line 53
class_attribute :_validators, instance_writer: false
#validation_context (rw)
[ GitHub ]# File 'activemodel/lib/active_model/validations.rb', line 49
attr_accessor :validation_context
Instance Method Details
#save(options = {})
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.
# File 'activerecord/lib/active_record/validations.rb', line 36
def save(={}) perform_validations( ) ? super : false end
#save!(options = {})
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.
# File 'activerecord/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.
# File 'activerecord/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)
Alias for #valid?.
# File 'activerecord/lib/active_record/validations.rb', line 62
alias_method :validate, :valid?
#validate!(context = nil)
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.
# File 'activerecord/lib/active_record/validations.rb', line 72
def validate!(context = nil) valid?(context) || raise_record_invalid end