Module: Super::Form::InlineErrors

Defined in:
lib/super/form/inline_errors.rb

Class Method Summary collapse

Class Method Details

.errable_fields(model_instance, column_or_association) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/super/form/inline_errors.rb', line 15

def errable_fields(model_instance, column_or_association)
  column_or_association = column_or_association.to_s
  reflection = model_instance.class.reflect_on_association(column_or_association)
  reflection ||= model_instance.class.reflections.values.find { |r| r.foreign_key == column_or_association }

  if reflection
    [reflection.name.to_s, reflection.foreign_key.to_s]
  else
    [column_or_association]
  end
end

.error_messages(model_instance, column_or_association) ⇒ Object



8
9
10
11
12
13
# File 'lib/super/form/inline_errors.rb', line 8

def error_messages(model_instance, column_or_association)
  errable_fields(model_instance, column_or_association)
    .flat_map { |field| Compatability.errable_fields(field) }
    .flat_map { |field| model_instance.errors.full_messages_for(field) }
    .uniq
end