Skip to content

AMS errors after upgrading from v0.9.5 to v0.10.2 #1864

Open
@hmistry

Description

@hmistry

Expected behavior vs actual behavior

Serialize model to JSON after upgrading and making changes required by version 0.10.2.
I'm getting 2 types of errors, one is undefined method '[]' for nil and the other is undefined method root in separate areas.

I've done all the conversions I read, i.e. subclassing from ActiveModelSerializers::Model instead of include ActiveModel::Serialization. Set adapter to :json.

2 questions, what things can cause the undefined method '[]' for nil and how do I set root false in render statements or in serializer classes?

Environment

ActiveModelSerializers Version (commit ref if not on tag):
0.10.2

OS Type & Version:
Latest OSX

Integrated application and version (e.g., Rails, Grape, etc):
Rails 5.0.0, Ruby 2.3.0

Backtrace

(e.g., provide any applicable backtraces from your application)
Failure/Error: render json: ErrorMessage.new(:missing), status: 404

  NoMethodError:
    undefined method `[]' for nil:NilClass
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model_serializers/model.rb:36:in `read_attribute_for_serialization'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer.rb:197:in `read_attribute_for_serialization'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer/field.rb:23:in `value'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer/attributes.rb:22:in `block in attributes'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer/attributes.rb:19:in `each'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer/attributes.rb:19:in `each_with_object'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer/attributes.rb:19:in `attributes'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer/caching.rb:216:in `fetch_attributes'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model/serializer.rb:169:in `serializable_hash'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model_serializers/adapter/attributes.rb:7:in `serializable_hash'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model_serializers/adapter/json.rb:6:in `serializable_hash'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/active_model_serializers-0.10.2/lib/active_model_serializers/adapter/base.rb:59:in `as_json'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/activesupport-5.0.0/lib/active_support/json/encoding.rb:33:in `encode'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/activesupport-5.0.0/lib/active_support/json/encoding.rb:20:in `encode'
  # /Users/hm/.rvm/gems/ruby-2.3.0@loop_server/gems/activesupport-5.0.0/lib/active_support/core_ext/object/json.rb:37:in `to_json'

....

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions