@@ -32,7 +32,7 @@ def self.get_ids_from_request(params, user)
3232 def perform
3333 polymorphic_association , preload_loads = analyze_associations ( @resource )
3434 includes = @includes . uniq - polymorphic_association - preload_loads - @optional_includes
35- has_smart_fields = @params [ :fields ] [ @collection_name ] . split ( ',' ) . any? do |field |
35+ has_smart_fields = Array ( @params . dig ( :fields , @collection_name ) & .split ( ',' ) ) . any? do |field |
3636 ForestLiana ::SchemaHelper . is_smart_field? ( @resource , field )
3737 end
3838
@@ -143,10 +143,8 @@ def compute_includes
143143 includes = associations_has_one . map do |association |
144144 association_name = association . name . to_s
145145
146- if @params [ :fields ] . key? ( association_name ) &&
147- @params [ :fields ] [ association_name ] . split ( ',' ) . size == 1 &&
148- @params [ :fields ] [ association_name ] . split ( ',' ) . include? ( association . klass . primary_key )
149-
146+ fields = @params [ :fields ] &.[]( association_name ) &.split ( ',' )
147+ if fields &.size == 1 && fields . include? ( association . klass . primary_key )
150148 @field_names_requested << association . foreign_key
151149 @optional_includes << association . name
152150 end
@@ -191,7 +189,7 @@ def get_segment
191189 end
192190
193191 def field_names_requested
194- return nil unless @params [ :fields ] && @params [ :fields ] [ @ collection_name]
192+ return [ ] unless @params . dig ( :fields , @ collection_name)
195193
196194 associations_for_query = extract_associations_from_filter
197195 associations_for_query << @params [ :sort ] . split ( '.' ) . first . to_sym if @params [ :sort ] &.include? ( '.' )
@@ -332,11 +330,12 @@ def compute_select_fields
332330 select << "#{ @resource . table_name } .#{ association . foreign_key } "
333331 end
334332
335- if @params [ :fields ] . key? ( path )
333+ fields = @params [ :fields ] &.[]( path ) &.split ( ',' )
334+ if fields
336335 association = get_one_association ( path )
337336 table_name = association . table_name
338337
339- @params [ : fields] [ path ] . split ( ',' ) . each do |association_path |
338+ fields . each do |association_path |
340339 if ForestLiana ::SchemaHelper . is_smart_field? ( association . klass , association_path )
341340 association . klass . attribute_names . each { |attribute | select << "#{ table_name } .#{ attribute } " }
342341 else
0 commit comments