instance method
validates_associated
Ruby on Rails 8.1.2
Since v2.2.3Signature
validates_associated(*attr_names)
Validates whether the associated object or objects are all valid. Works with any kind of association.
class Book < ActiveRecord::Base has_many :pages belongs_to :library validates_associated :pages, :library end
WARNING: This validation must not be used on both ends of an association. Doing so will lead to a circular dependency and cause infinite recursion.
NOTE: This validation will not fail if the association hasn’t been assigned. If you want to ensure that the association is both present and guaranteed to be valid, you also need to use validates_presence_of.
Configuration options:
-
:message- A custom error message (default is: “is invalid”). -
:on- Specifies the contexts where this validation is active. Runs in all validation contexts by defaultnil. You can pass a symbol or an array of symbols. (e.g.on: :createoron: :custom_validation_contextoron: [:create, :custom_validation_context]) -
:if- Specifies a method, proc, or string to call to determine if the validation should occur (e.g.if: :allow_validation, orif: Proc.new { |user| user.signup_step > 2 }). The method, proc or string should return or evaluate to atrueorfalsevalue. -
:unless- Specifies a method, proc, or string to call to determine if the validation should not occur (e.g.unless: :skip_validation, orunless: Proc.new { |user| user.signup_step <= 2 }). The method, proc, or string should return or evaluate to atrueorfalsevalue.
Parameters
-
attr_namesrest
Source
# File activerecord/lib/active_record/validations/associated.rb, line 60
def validates_associated(*attr_names)
validates_with AssociatedValidator, _merge_attributes(attr_names)
end
Defined in activerecord/lib/active_record/validations/associated.rb line 60
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Validations::ClassMethods