instance method
strict_loading!
Ruby on Rails 7.2.3
Since v6.1.7.10Signature
strict_loading!(value = true, mode: :all)
Sets the record to strict_loading mode. This will raise an error if the record tries to lazily load an association.
NOTE: Strict loading is disabled during validation in order to let the record validate its association.
user = User.first user.strict_loading! # => true user.address.city # => ActiveRecord::StrictLoadingViolationError user.comments.to_a # => ActiveRecord::StrictLoadingViolationError
Parameters
-
value- Boolean specifying whether to enable or disable strict loading. -
:mode- Symbol specifying strict loading mode. Defaults to :all. Using :n_plus_one_only mode will only raise an error if an association that will lead to an n plus one query is lazily loaded.
Examples
user = User.first user.strict_loading!(false) # => false user.address.city # => "Tatooine" user.comments.to_a # => [#<Comment:0x00...] user.strict_loading!(mode: :n_plus_one_only) user.address.city # => "Tatooine" user.comments.to_a # => [#<Comment:0x00...] user.comments.first.ratings.to_a # => ActiveRecord::StrictLoadingViolationError
Parameters
-
valueopt = true -
modekey = :all
Source
# File activerecord/lib/active_record/core.rb, line 707
def strict_loading!(value = true, mode: :all)
unless [:all, :n_plus_one_only].include?(mode)
raise ArgumentError, "The :mode option must be one of [:all, :n_plus_one_only] but #{mode.inspect} was provided."
end
@strict_loading_mode = mode
@strict_loading = value
end
Defined in activerecord/lib/active_record/core.rb line 707
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Core