Skip to content

Commit 9c9a137

Browse files
committed
Upgrade QueryRelation to leverage eager_include/preload
1 parent cd61157 commit 9c9a137

File tree

3 files changed

+5
-10
lines changed

3 files changed

+5
-10
lines changed

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ gem "pg", ">=1.4.1", :require => false
6666
gem "pg-dsn_parser", "~>0.1.1", :require => false
6767
gem "prism", ">=0.25.0", :require => false # Used by DescendantLoader
6868
gem "psych", ">=3.1", :require => false # 3.1 safe_load changed positional to kwargs like aliases: true: https://github.com/ruby/psych/commit/4d4439d6d0adfcbd211ea295779315f1baa7dadd
69-
gem "query_relation", "~>0.1.0", :require => false
69+
gem "query_relation", "~>0.2.0", :require => false
7070
gem "rack", ">=2.2.19", :require => false # CVE-2025-61772 https://github.com/rack/rack/security/advisories/GHSA-wpv5-97wm-hp9c
7171
gem "rack-attack", "~>6.5.0", :require => false
7272
gem "rails", "~>7.2.0", ">= 7.2.2.1"

lib/acts_as_ar_scope.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
class ActsAsArScope < ActsAsArModel
55
# user required to add aar_scope
66
class << self
7-
delegate :includes, :references, :limit, :order, :offset, :select, :where, :to => :aar_scope
7+
# Standard query methods are delegated to the core active record classes
8+
delegate :includes, :references, :eager_load, :preload, :limit, :order, :offset, :select, :where, :to => :aar_scope
89
delegate :find, :first, :last, :find_by_id, :find_by, :count, :to => :aar_scope
910

1011
delegate :klass, :to => :aar_scope, :prefix => true

lib/rbac/filterer.rb

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -430,14 +430,8 @@ def select_from_order_columns(columns)
430430
end
431431

432432
def include_references(scope, klass, includes, references, exp_includes)
433-
if scope.respond_to?(:eager_load)
434-
# TODO: do we want to klass.prune_references(exp_includes)? (see same comment for inline_view? section)
435-
scope.eager_load(references || {}).eager_load(exp_includes || {}).preload(includes)
436-
else
437-
# This is the AAAR / QueryRelation branch
438-
# TODO: drop this fallback once https://github.com/ManageIQ/query_relation/pull/43 is merged
439-
scope.references(references || {}).references(exp_includes || {}).includes(includes)
440-
end
433+
# TODO: do we want to klass.prune_references(exp_includes)? (see same comment for inline_view? section)
434+
scope.eager_load(references || {}).eager_load(exp_includes || {}).preload(includes)
441435
end
442436

443437
# @param includes [Array, Hash]

0 commit comments

Comments
 (0)