Skip to content

Commit 3695f97

Browse files
fix(serializer): serialize only the foreignKeys of belongsTo relations (#587)
1 parent 5e71fda commit 3695f97

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

app/serializers/forest_liana/serializer_factory.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,6 @@ def serializer_association(association)
369369

370370
def attributes(active_record_class)
371371
return [] if @is_smart_collection
372-
373372
active_record_class.column_names.select do |column_name|
374373
!association?(active_record_class, column_name)
375374
end
@@ -410,7 +409,7 @@ def association?(active_record_class, column_name)
410409

411410
def foreign_keys(active_record_class)
412411
begin
413-
SchemaUtils.associations(active_record_class).map(&:foreign_key)
412+
SchemaUtils.belongs_to_associations(active_record_class).map(&:foreign_key)
414413
rescue => err
415414
# Association foreign_key triggers an error. Put the stacktrace and
416415
# returns no foreign keys.

app/services/forest_liana/schema_utils.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ def self.one_associations(active_record_class)
1818
end
1919
end
2020

21+
def self.belongs_to_associations(active_record_class)
22+
self.associations(active_record_class).select do |x|
23+
[:belongs_to].include?(x.macro)
24+
end
25+
end
26+
2127
def self.many_associations(active_record_class)
2228
self.associations(active_record_class).select do |x|
2329
[:has_many, :has_and_belongs_to_many].include?(x.macro)

0 commit comments

Comments
 (0)