From 97e82c3eb780d579fd07783e6cc2a315cda0962d Mon Sep 17 00:00:00 2001 From: Lachlan Sylvester Date: Fri, 12 Jun 2015 18:53:47 +1000 Subject: [PATCH] use model name to determine the type --- lib/active_model/serializer.rb | 2 +- test/adapter/json_api/linked_test.rb | 4 ++-- test/fixtures/poro.rb | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 2237997e..18a44da0 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -188,7 +188,7 @@ module ActiveModel 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 ff27fac8..da038959 100644 --- a/test/adapter/json_api/linked_test.rb +++ b/test/adapter/json_api/linked_test.rb @@ -203,7 +203,7 @@ module ActiveModel 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 @@ module ActiveModel 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 0bef569c..29e193ee 100644 --- a/test/fixtures/poro.rb +++ b/test/fixtures/poro.rb @@ -1,6 +1,10 @@ class Model FILE_DIGEST = Digest::MD5.hexdigest(File.open(__FILE__).read) + def self.model_name + @_model_name ||= ActiveModel::Name.new(self) + end + def initialize(hash={}) @attributes = hash end