File tree Expand file tree Collapse file tree 4 files changed +21
-13
lines changed
Expand file tree Collapse file tree 4 files changed +21
-13
lines changed Original file line number Diff line number Diff line change @@ -50,12 +50,12 @@ def status_code(params)
5050 message = errors_object . generate_message (
5151 error_key , nil , error_hash [ :error ]
5252 )
53- elsif error_hash [ :error ] . present?
53+ elsif error_hash [ :error ] . present? && error_hash [ :error ] . is_a? ( Symbol )
5454 message = errors_object . generate_message (
5555 error_key , error_hash [ :error ] , error_hash
5656 )
5757 else
58- message = error_hash [ :message ]
58+ message = error_hash [ :message ] || error_hash [ :error ]
5959 end
6060
6161 errors_object . full_message ( error_key , message )
Original file line number Diff line number Diff line change @@ -62,8 +62,21 @@ def self.add_errors_renderer!
6262 details [ attr ] ||= [ ]
6363 details [ attr ] << error . detail . merge ( message : error . message )
6464 end
65- elsif resource . respond_to? ( :details )
66- details = resource . details
65+ elsif resource . respond_to? ( :details ) && resource . respond_to? ( :messages )
66+ resource . details . each do |attr , problems |
67+ problems . each_with_index do |error , index |
68+ details [ attr ] ||= [ ]
69+
70+ if error [ :error ] . is_a? ( Hash )
71+ current = error [ :error ] . dup
72+ current [ :error ] ||= :invalid
73+
74+ details [ attr ] << current
75+ else
76+ details [ attr ] << error . merge ( message : resource . messages [ attr ] [ index ] )
77+ end
78+ end
79+ end
6780 else
6881 details = resource . messages
6982 end
Original file line number Diff line number Diff line change @@ -57,7 +57,7 @@ def self.ransackable_attributes(auth_object = nil)
5757
5858 # Provide a validation adding an error to the model's base
5959 def title_check
60- errors . add ( :base , :invalid ) if title == 'n/a'
60+ errors . add ( :base , :model_invalid , errors : 'The record has an unacceptable title.' ) if title == 'n/a'
6161 end
6262
6363 def deletable?
Original file line number Diff line number Diff line change 6161 . to eq ( Rack ::Utils ::HTTP_STATUS_CODES [ 422 ] )
6262 expect ( response_json [ 'errors' ] [ 0 ] [ 'source' ] )
6363 . to eq ( 'pointer' => '/data/relationships/user' )
64- if Rails . gem_version >= Gem ::Version . new ( '6.1' )
65- expect ( response_json [ 'errors' ] [ 0 ] [ 'detail' ] )
66- . to eq ( 'User must exist' )
67- else
68- expect ( response_json [ 'errors' ] [ 0 ] [ 'detail' ] )
69- . to eq ( 'User can\'t be blank' )
70- end
64+ expect ( response_json [ 'errors' ] [ 0 ] [ 'detail' ] )
65+ . to eq ( 'User must exist' )
7166 end
7267
7368 context 'required by validations' do
156151 expect ( response_json [ 'errors' ] [ 0 ] [ 'source' ] )
157152 . to eq ( 'pointer' => '/data' )
158153 expect ( response_json [ 'errors' ] [ 0 ] [ 'detail' ] )
159- . to eq ( 'is invalid ' )
154+ . to eq ( 'Validation failed: The record has an unacceptable title. ' )
160155 end
161156 end
162157 end
You can’t perform that action at this time.
0 commit comments