class ActiveRecord::Associations::NestedError
Attributes
Public Class Methods
Source
# File lib/active_record/associations/nested_error.rb, line 8 def initialize(association, inner_error) @base = association.owner @association = association @inner_error = inner_error super(@base, inner_error, { attribute: compute_attribute(inner_error) }) end
Calls superclass method
Private Instance Methods
Source
# File lib/active_record/associations/nested_error.rb, line 18 def compute_attribute(inner_error) association_name = association.reflection.name if association.collection? && index_errors_setting && index "#{association_name}[#{index}].#{inner_error.attribute}".to_sym else "#{association_name}.#{inner_error.attribute}".to_sym end end
Source
# File lib/active_record/associations/nested_error.rb, line 33 def index @index ||= ordered_records&.find_index(inner_error.base) end
Source
# File lib/active_record/associations/nested_error.rb, line 28 def index_errors_setting @index_errors_setting ||= association.options.fetch(:index_errors, ActiveRecord.index_nested_attribute_errors) end
Source
# File lib/active_record/associations/nested_error.rb, line 37 def ordered_records case index_errors_setting when true # default is association order association.target when :nested_attributes_order association.nested_attributes_target end end