7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'app/serializers/next_on_rails/active_model_errors_serializer.rb', line 7
def serializable_hash
i = -1
full_messages = @model.errors.full_messages
errors = @model.errors.messages.map do |field, error_messages|
error_messages.map do |error_message|
i += 1
{
title: error_message,
detail: full_messages[i],
attribute: field,
source: { pointer: "/data/attributes/#{field}" }
}
end
end
@model.class.reflect_on_all_associations.each do |relationship|
Array.wrap(@model.send(relationship.name)).each_with_index do |child, index|
i = -1
full_messages = @model.errors.full_messages
errors << child.errors.messages.map do |field, error_messages|
error_messages.map do |error_message|
i += 1
{
title: error_message,
detail: full_messages[i],
attribute: "#{child.model_name.plural}[#{index}].#{field}",
source: { pointer: "/data/attributes/#{child.model_name.plural}[#{index}].#{field}" }
}
end
end
end
end
return { errors: errors.flatten, hash_errors: @model.errors.as_json }
end
|