Skip to content

Commit cd1bc09

Browse files
committed
dont create a object for a has one relationship unnecessarily just to fetch id
1 parent a018f1d commit cd1bc09

3 files changed

Lines changed: 14 additions & 6 deletions

File tree

lib/fast_jsonapi/serialization_core.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,7 @@ def fetch_id(record, relationship, params)
185185
return object.id
186186
end
187187

188-
if relationship[:relationship_type] == :has_one
189-
record.public_send(relationship[:object_method_name]).try(:id)
190-
else
191-
record.public_send(relationship[:id_method_name])
192-
end
188+
record.public_send(relationship[:id_method_name])
193189
end
194190
end
195191
end

spec/lib/object_serializer_inheritance_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ def photo
3030
p.user_id = id
3131
p
3232
end
33+
34+
def photo_id
35+
1
36+
end
3337
end
3438

3539
class UserSerializer
@@ -77,6 +81,10 @@ def account
7781
a.employee_id = id
7882
a
7983
end
84+
85+
def account_id
86+
1
87+
end
8088
end
8189

8290
class EmployeeSerializer < UserSerializer

spec/shared/contexts/movie_context.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ def movie_type
3131
mt
3232
end
3333

34+
def advertising_campaign_id
35+
1
36+
end
37+
3438
def advertising_campaign
3539
ac = AdvertisingCampaign.new
3640
ac.id = 1
@@ -284,7 +288,7 @@ class MovieSerializer
284288
:owner_id,
285289
:owner,
286290
:movie_type_id,
287-
:advertising_campaign
291+
:advertising_campaign_id
288292
)
289293

290294
ActorStruct = Struct.new(:id, :name, :email, :agency_id, :award_ids)

0 commit comments

Comments
 (0)