From e8cad463f3a3509b307ab0eaf2c67187a782b12f Mon Sep 17 00:00:00 2001 From: Larry Gebhardt Date: Tue, 6 Nov 2018 20:19:02 -0500 Subject: [PATCH] Add Arel.sql to pluck fields Needed to avoid "DEPRECATION WARNING: Dangerous query method..." See https://github.com/rails/rails/issues/32995 --- .../active_relation_resource_finder.rb | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/jsonapi/active_relation_resource_finder.rb b/lib/jsonapi/active_relation_resource_finder.rb index 3095e6079..a3617f73d 100644 --- a/lib/jsonapi/active_relation_resource_finder.rb +++ b/lib/jsonapi/active_relation_resource_finder.rb @@ -64,11 +64,11 @@ def find_fragments(filters, options = {}) records = find_records(filters, options) table_name = _model_class.table_name - pluck_fields = ["#{concat_table_field(table_name, _primary_key)} AS #{table_name}_#{_primary_key}"] + pluck_fields = [Arel.sql("#{concat_table_field(table_name, _primary_key)} AS #{table_name}_#{_primary_key}")] cache_field = attribute_to_model_field(:_cache_field) if options[:cache] if cache_field - pluck_fields << "#{concat_table_field(table_name, cache_field[:name])} AS #{table_name}_#{cache_field[:name]}" + pluck_fields << Arel.sql("#{concat_table_field(table_name, cache_field[:name])} AS #{table_name}_#{cache_field[:name]}") end model_fields = {} @@ -76,7 +76,7 @@ def find_fragments(filters, options = {}) attributes.try(:each) do |attribute| model_field = attribute_to_model_field(attribute) model_fields[attribute] = model_field - pluck_fields << "#{concat_table_field(table_name, model_field[:name])} AS #{table_name}_#{model_field[:name]}" + pluck_fields << Arel.sql("#{concat_table_field(table_name, model_field[:name])} AS #{table_name}_#{model_field[:name]}") end fragments = {} @@ -204,13 +204,13 @@ def find_related_monomorphic_fragments(source_rids, relationship, included_key, records = related_klass.apply_filters(records, filters, filter_options) pluck_fields = [ - "#{primary_key_field} AS #{_table_name}_#{_primary_key}", - "#{concat_table_field(table_alias, related_klass._primary_key)} AS #{table_alias}_#{related_klass._primary_key}" + Arel.sql("#{primary_key_field} AS #{_table_name}_#{_primary_key}"), + Arel.sql("#{concat_table_field(table_alias, related_klass._primary_key)} AS #{table_alias}_#{related_klass._primary_key}") ] cache_field = related_klass.attribute_to_model_field(:_cache_field) if options[:cache] if cache_field - pluck_fields << "#{concat_table_field(table_alias, cache_field[:name])} AS #{table_alias}_#{cache_field[:name]}" + pluck_fields << Arel.sql("#{concat_table_field(table_alias, cache_field[:name])} AS #{table_alias}_#{cache_field[:name]}") end model_fields = {} @@ -218,7 +218,7 @@ def find_related_monomorphic_fragments(source_rids, relationship, included_key, attributes.try(:each) do |attribute| model_field = related_klass.attribute_to_model_field(attribute) model_fields[attribute] = model_field - pluck_fields << "#{concat_table_field(table_alias, model_field[:name])} AS #{table_alias}_#{model_field[:name]}" + pluck_fields << Arel.sql("#{concat_table_field(table_alias, model_field[:name])} AS #{table_alias}_#{model_field[:name]}") end rows = records.pluck(*pluck_fields) @@ -265,9 +265,9 @@ def find_related_polymorphic_fragments(source_rids, relationship, options = {}) related_type = concat_table_field(_table_name, relationship.polymorphic_type) pluck_fields = [ - "#{primary_key} AS #{_table_name}_#{_primary_key}", - "#{related_key} AS #{_table_name}_#{relationship.foreign_key}", - "#{related_type} AS #{_table_name}_#{relationship.polymorphic_type}" + Arel.sql("#{primary_key} AS #{_table_name}_#{_primary_key}"), + Arel.sql("#{related_key} AS #{_table_name}_#{relationship.foreign_key}"), + Arel.sql("#{related_type} AS #{_table_name}_#{relationship.polymorphic_type}") ] relations = relationship.polymorphic_relations