@@ -42,8 +42,9 @@ def self.add_errors_renderer!
42
42
many = JSONAPI ::Rails . is_collection? ( resource , options [ :is_collection ] )
43
43
resource = [ resource ] unless many
44
44
45
- return JSONAPI ::ErrorSerializer . new ( resource , options )
46
- . serialized_json unless resource . is_a? ( ActiveModel ::Errors )
45
+ return JSONAPI ::Rails . serializer_to_json (
46
+ JSONAPI ::ErrorSerializer . new ( resource , options )
47
+ ) unless resource . is_a? ( ActiveModel ::Errors )
47
48
48
49
errors = [ ]
49
50
model = resource . instance_variable_get ( '@base' )
@@ -66,9 +67,11 @@ def self.add_errors_renderer!
66
67
end
67
68
end
68
69
69
- JSONAPI ::ActiveModelErrorSerializer . new (
70
- errors , params : { model : model , model_serializer : model_serializer }
71
- ) . serialized_json
70
+ JSONAPI ::Rails . serializer_to_json (
71
+ JSONAPI ::ActiveModelErrorSerializer . new (
72
+ errors , params : { model : model , model_serializer : model_serializer }
73
+ )
74
+ )
72
75
end
73
76
end
74
77
@@ -100,13 +103,15 @@ def self.add_renderer!
100
103
serializer_class = JSONAPI ::Rails . serializer_class ( resource , many )
101
104
end
102
105
103
- serializer_class . new ( resource , options ) . serialized_json
106
+ JSONAPI ::Rails . serializer_to_json (
107
+ serializer_class . new ( resource , options )
108
+ )
104
109
end
105
110
end
106
111
107
112
# Checks if an object is a collection
108
113
#
109
- # Stolen from [FastJsonapi::ObjectSerializer ], instance method.
114
+ # Stolen from [JSONAPI::Serializer ], instance method.
110
115
#
111
116
# @param resource [Object] to check
112
117
# @param force_is_collection [NilClass] flag to overwrite
@@ -126,5 +131,17 @@ def self.serializer_class(resource, is_collection)
126
131
127
132
"#{ klass . name } Serializer" . constantize
128
133
end
134
+
135
+ # Lazily returns the serializer JSON
136
+ #
137
+ # @param serializer [Object] to evaluate
138
+ # @return [String]
139
+ def self . serializer_to_json ( serializer )
140
+ if serializer . respond_to? ( :serialized_json )
141
+ serializer . serialized_json
142
+ else
143
+ serializer . serializable_hash . to_json
144
+ end
145
+ end
129
146
end
130
147
end
0 commit comments