diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 00eed5bc8..36c7a2c0b 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -185,7 +185,7 @@ def id end def type - object.class.to_s.demodulize.underscore.pluralize + object.class.model_name.plural end def attributes(options = {}) diff --git a/test/adapter/json_api/linked_test.rb b/test/adapter/json_api/linked_test.rb index ff27fac80..da0389597 100644 --- a/test/adapter/json_api/linked_test.rb +++ b/test/adapter/json_api/linked_test.rb @@ -203,7 +203,7 @@ def test_include_multiple_posts_and_linked assert_equal expected, alt_adapter.serializable_hash[:included] end - def test_ignore_model_namespace_for_linked_resource_type + def test_underscore_model_namespace_for_linked_resource_type spammy_post = Post.new(id: 123) spammy_post.related = [Spam::UnrelatedLink.new(id: 456)] serializer = SpammyPostSerializer.new(spammy_post) @@ -212,7 +212,7 @@ def test_ignore_model_namespace_for_linked_resource_type expected = { related: { data: [{ - type: 'unrelated_links', + type: 'spam_unrelated_links', id: '456' }] } diff --git a/test/fixtures/poro.rb b/test/fixtures/poro.rb index 84a24de3c..40513da5e 100644 --- a/test/fixtures/poro.rb +++ b/test/fixtures/poro.rb @@ -1,4 +1,9 @@ class Model + + def self.model_name + @_model_name ||= ActiveModel::Name.new(self) + end + def initialize(hash={}) @attributes = hash end