Fix and test for #490

This commit is contained in:
Tony Novak 2015-01-30 13:49:15 -08:00
parent f71ac766ef
commit 263b66e423
3 changed files with 16 additions and 2 deletions

View File

@ -12,7 +12,7 @@ module ActiveModel
end end
def serializer_class(object, options = {}) def serializer_class(object, options = {})
serializer_from_options || serializer_from_object(object, options) || default_serializer (serializer_from_options unless object.nil?) || serializer_from_object(object, options) || default_serializer
end end
def build_serializer(object, options = {}) def build_serializer(object, options = {})

View File

@ -88,7 +88,7 @@ class UserSerializer < ActiveModel::Serializer
end end
class UserInfoSerializer < ActiveModel::Serializer class UserInfoSerializer < ActiveModel::Serializer
has_one :user has_one :user, serializer: UserSerializer
end end
class ProfileSerializer < ActiveModel::Serializer class ProfileSerializer < ActiveModel::Serializer

View File

@ -176,6 +176,20 @@ module ActiveModel
}, @user_serializer.as_json) }, @user_serializer.as_json)
end end
def test_associations_embedding_objects_with_nil_values
user_info = UserInfo.new
user_info.instance_eval do
def user
nil
end
end
user_info_serializer = UserInfoSerializer.new(user_info)
assert_equal({
'user_info' => { user: nil }
}, user_info_serializer.as_json)
end
def test_associations_embedding_ids_using_embed_namespace def test_associations_embedding_ids_using_embed_namespace
@association.embed_namespace = :links @association.embed_namespace = :links
@association.embed = :ids @association.embed = :ids