File tree Expand file tree Collapse file tree 3 files changed +16
-2
lines changed
lib/active_model/serializer/association
unit/active_model/serializer Expand file tree Collapse file tree 3 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ def initialize(name, *args)
12
12
end
13
13
14
14
def serializer_class ( object , options = { } )
15
- serializer_from_options || serializer_from_object ( object , options ) || default_serializer
15
+ ( serializer_from_options unless object . nil? ) || serializer_from_object ( object , options ) || default_serializer
16
16
end
17
17
18
18
def build_serializer ( object , options = { } )
Original file line number Diff line number Diff line change @@ -88,7 +88,7 @@ class UserSerializer < ActiveModel::Serializer
88
88
end
89
89
90
90
class UserInfoSerializer < ActiveModel ::Serializer
91
- has_one :user
91
+ has_one :user , serializer : UserSerializer
92
92
end
93
93
94
94
class ProfileSerializer < ActiveModel ::Serializer
Original file line number Diff line number Diff line change @@ -176,6 +176,20 @@ def name
176
176
} , @user_serializer . as_json )
177
177
end
178
178
179
+ def test_associations_embedding_objects_with_nil_values
180
+ user_info = UserInfo . new
181
+ user_info . instance_eval do
182
+ def user
183
+ nil
184
+ end
185
+ end
186
+ user_info_serializer = UserInfoSerializer . new ( user_info )
187
+
188
+ assert_equal ( {
189
+ 'user_info' => { user : nil }
190
+ } , user_info_serializer . as_json )
191
+ end
192
+
179
193
def test_associations_embedding_ids_using_embed_namespace
180
194
@association . embed_namespace = :links
181
195
@association . embed = :ids
You can’t perform that action at this time.
0 commit comments