@@ -13,7 +13,9 @@ class ActiveModelErrorSerializer < ErrorSerializer
1313
1414 attribute :code do |object |
1515 _ , error_hash = object
16- code = error_hash [ :error ] unless error_hash [ :error ] . is_a? ( Hash )
16+ unless error_hash [ :error ] . is_a? ( Hash ) || error_hash [ :error ] . is_a? ( String )
17+ code = error_hash [ :error ]
18+ end
1719 code ||= error_hash [ :message ] || :invalid
1820 # `parameterize` separator arguments are different on Rails 4 vs 5...
1921 code . to_s . delete ( "''" ) . parameterize . tr ( '-' , '_' )
@@ -29,9 +31,15 @@ class ActiveModelErrorSerializer < ErrorSerializer
2931 error_key , nil , error_hash [ :error ]
3032 )
3133 elsif error_hash [ :error ] . present?
32- message = errors_object . generate_message (
33- error_key , error_hash [ :error ] , error_hash
34- )
34+ # if the error was added as a string, we do not need to generate an
35+ # error message, but use the error as is
36+ if error_hash [ :error ] . is_a? ( String )
37+ message = error_hash [ :error ]
38+ else
39+ message = errors_object . generate_message (
40+ error_key , error_hash [ :error ] , error_hash
41+ )
42+ end
3543 else
3644 message = error_hash [ :message ]
3745 end
0 commit comments