Exception: Grape::Exceptions::ValidationErrors
- Inherits:
-
Base
- Object
- StandardError
- Base
- Grape::Exceptions::ValidationErrors
show all
- Includes:
- Enumerable
- Defined in:
- lib/grape/exceptions/validation_errors.rb
Constant Summary
collapse
- ERRORS_FORMAT_KEY =
'grape.errors.format'
- DEFAULT_ERRORS_FORMAT =
'%<attributes>s %<message>s'
Constants inherited
from Base
Base::BASE_ATTRIBUTES_KEY, Base::BASE_MESSAGES_KEY, Base::FALLBACK_LOCALE
Instance Attribute Summary collapse
Attributes inherited from Base
#headers, #status
Instance Method Summary
collapse
Methods inherited from Base
#[]
Constructor Details
#initialize(errors: [], headers: {}, **_options) ⇒ ValidationErrors
Returns a new instance of ValidationErrors.
13
14
15
16
|
# File 'lib/grape/exceptions/validation_errors.rb', line 13
def initialize(errors: [], headers: {}, **_options)
@errors = errors.group_by(&:params)
super(message: full_messages.join(', '), status: 400, headers: )
end
|
Instance Attribute Details
#errors ⇒ Object
Returns the value of attribute errors.
11
12
13
|
# File 'lib/grape/exceptions/validation_errors.rb', line 11
def errors
@errors
end
|
Instance Method Details
#as_json(**_opts) ⇒ Object
26
27
28
29
30
31
32
33
|
# File 'lib/grape/exceptions/validation_errors.rb', line 26
def as_json(**_opts)
errors.map do |k, v|
{
params: k,
messages: v.map(&:to_s)
}
end
end
|
#each ⇒ Object
18
19
20
21
22
23
24
|
# File 'lib/grape/exceptions/validation_errors.rb', line 18
def each
errors.each_pair do |attribute, errors|
errors.each do |error|
yield attribute, error
end
end
end
|
#full_messages ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/grape/exceptions/validation_errors.rb', line 39
def full_messages
messages = map do |attributes, error|
I18n.t(
ERRORS_FORMAT_KEY,
default: DEFAULT_ERRORS_FORMAT,
attributes: translate_attributes(attributes),
message: error.message
)
end
messages.uniq!
messages
end
|
#to_json(*_opts) ⇒ Object
35
36
37
|
# File 'lib/grape/exceptions/validation_errors.rb', line 35
def to_json(*_opts)
as_json.to_json
end
|