Skip to content

Commit d3649d5

Browse files
committed
Renaming Error to NoSerializerError
1 parent e5d1e40 commit d3649d5

File tree

3 files changed

+7
-13
lines changed

3 files changed

+7
-13
lines changed

lib/action_controller/serialization.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ def use_adapter?
4343
@_serializer_opts[:scope_name] = _serialization_scope
4444

4545
begin
46-
object = serializer.new(resource, @_serializer_opts)
47-
rescue ActiveModel::Serializer::ArraySerializer::Error
46+
serialized = serializer.new(resource, @_serializer_opts)
47+
rescue ActiveModel::Serializer::ArraySerializer::NoSerializerError
4848
else
49-
resource = ActiveModel::Serializer::Adapter.create(object, @_adapter_opts)
49+
resource = ActiveModel::Serializer::Adapter.create(serialized, @_adapter_opts)
5050
end
5151
end
5252

lib/active_model/serializer.rb

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,7 @@ def each_association(&block)
211211
association_value,
212212
options.except(:serializer).merge(serializer_from_options(association_options))
213213
)
214-
rescue ActiveModel::Serializer::ArraySerializer::Error
215-
# 1. Failure to serialize an element in a collection, e.g. [ {hi: "Steve" } ] will fail
216-
# with NoMethodError when the ArraySerializer finds no serializer for the hash { hi: "Steve" },
217-
# and tries to call new on that nil.
218-
# 2. Convert association_value to hash using implicit as_json
219-
# 3. Set as virtual value (serializer is nil)
220-
# 4. Consider warning when this happens
214+
rescue ActiveModel::Serializer::ArraySerializer::NoSerializerError
221215
virtual_value = association_value
222216
virtual_value = virtual_value.as_json if virtual_value.respond_to?(:as_json)
223217
association_options[:association_options][:virtual_value] = virtual_value

lib/active_model/serializer/array_serializer.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
module ActiveModel
22
class Serializer
33
class ArraySerializer
4-
Error = Class.new(StandardError)
4+
NoSerializerError = Class.new(StandardError)
55
include Enumerable
66
delegate :each, to: :@objects
77

8-
attr_reader :meta, :meta_key, :objects
8+
attr_reader :meta, :meta_key
99

1010
def initialize(objects, options = {})
1111
@resource = objects
@@ -16,7 +16,7 @@ def initialize(objects, options = {})
1616
)
1717

1818
if serializer_class.nil?
19-
fail Error, "No serializer found for object: #{object.inspect}"
19+
fail NoSerializerError, "No serializer found for object: #{object.inspect}"
2020
else
2121
serializer_class.new(object, options.except(:serializer))
2222
end

0 commit comments

Comments
 (0)