diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 474b2d9d..a5074edf 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -198,8 +198,8 @@ module ActiveModel columns = klass.columns_hash attrs = _attributes.inject({}) do |hash, (name,key)| - column = columns[name] - hash.merge key => column[:type] + column = columns[name.to_s] + hash.merge key => column.type end associations = _associations.inject({}) do |hash, association| @@ -212,7 +212,7 @@ module ActiveModel # The model class associated with this serializer. def model_class - name.sub(/Serializer$/, '') + name.sub(/Serializer$/, '').constantize end # Define how associations should be embedded. diff --git a/test/serializer_test.rb b/test/serializer_test.rb index b4e50161..db882efb 100644 --- a/test/serializer_test.rb +++ b/test/serializer_test.rb @@ -557,7 +557,7 @@ class SerializerTest < ActiveModel::TestCase Class.new do class << self def columns_hash - { :name => { :type => :string }, :age => { :type => :integer } } + { "name" => Struct.new(:type).new(:string), "age" => Struct.new(:type).new(:integer) } end def reflect_on_association(name)