Articles by Sergio Xalambrí

Use ActiveModel::Serializer with non ActiveRecord object

If you are trying to serialize an object which is not an instance of ActiveRecord, when calling:

UserSerializer.new(data).to_json

You will get this error:

NoMethodError (undefined method `read_attribute_for_serialization' for #<Hash:0x0000000129d34148>)

To fix it, in the serializer add the following method

def read_attribute_for_serialization(attr)
  return object[attr.to_s]
end

Now, if you run the first line again it will correctly return the serializer JSON.