diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 8281e26e..1208ca80 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -70,7 +70,7 @@ module ActiveModel end def key - options[:as] || name + options[:key] || name end end @@ -126,10 +126,10 @@ module ActiveModel class_eval "def #{attr}() object.#{attr} end", __FILE__, __LINE__ end - # if :as is specified without :serializer, then use conventions + # if :key is specified without :serializer, then use conventions # to determine the serializer - if options[:as] && !options[:serializer] - options[:serializer] = const_get("#{options[:as].to_s.camelize.singularize}Serializer") + if options[:key] && !options[:serializer] + options[:serializer] = const_get("#{options[:key].to_s.camelize.singularize}Serializer") else options[:serializer] ||= const_get("#{attr.to_s.camelize}Serializer") end @@ -171,10 +171,10 @@ module ActiveModel # # { :posts => { :has_many => :posts } } # - # If :as is used: + # If :key is used: # # class PostsSerializer < ActiveModel::Serializer - # has_many :my_posts, :as => :posts + # has_many :posts, :key => :my_posts # end # # the hash looks like this: @@ -198,7 +198,7 @@ module ActiveModel end associations = _associations.inject({}) do |hash, association| - model_association = klass.reflect_on_association(association.key) + model_association = klass.reflect_on_association(association.name) hash.merge association.key => { model_association.macro => model_association.name } end diff --git a/test/serializer_test.rb b/test/serializer_test.rb index 0ceed941..5fd71cdd 100644 --- a/test/serializer_test.rb +++ b/test/serializer_test.rb @@ -440,8 +440,8 @@ class SerializerTest < ActiveModel::TestCase end class CustomBlogSerializer < ActiveModel::Serializer - has_many :public_posts, :as => :posts, :serializer => PostSerializer - has_one :public_user, :as => :user, :serializer => UserSerializer + has_many :public_posts, :key => :posts, :serializer => PostSerializer + has_one :public_user, :key => :user, :serializer => UserSerializer end def test_associations_with_as @@ -478,8 +478,8 @@ class SerializerTest < ActiveModel::TestCase const_set(:UserSerializer, UserSerializer) const_set(:PostSerializer, PostSerializer) - has_many :public_posts, :as => :posts - has_one :public_user, :as => :user + has_many :public_posts, :key => :posts + has_one :public_user, :key => :user end posts = [ @@ -559,8 +559,8 @@ class SerializerTest < ActiveModel::TestCase end attributes :name, :age - has_many :my_posts, :as => :posts, :serializer => Class.new - has_one :my_parent, :as => :parent, :serializer => Class.new + has_many :posts, :key => :my_posts, :serializer => Class.new + has_one :parent, :key => :my_parent, :serializer => Class.new end assert_equal serializer.schema, {