Skip to content

Commit f00bd8a

Browse files
committed
Upgrade QueryRelation to leverage eager_include/preload
1 parent 8bc0361 commit f00bd8a

File tree

3 files changed

+7
-10
lines changed

3 files changed

+7
-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.20", :require => false # https://github.com/advisories/GHSA-6xw4-3v39-52mm https://github.com/advisories/GHSA-6xw4-3v39-52mm https://github.com/advisories/GHSA-6xw4-3v39-52mm https://github.com/advisories/GHSA-6xw4-3v39-52mm https://github.com/advisories/GHSA-6xw4-3v39-52mm https://github.com/advisories/GHSA-6xw4-3v39-52mm
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: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -429,15 +429,11 @@ def select_from_order_columns(columns)
429429
end
430430
end
431431

432+
# NOTE: for ActsAsArModel, scope will be a QueryRelation
433+
# for ActsAsArScope, scope will be a standard AR scope
432434
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
435+
# TODO: do we want to klass.prune_references(exp_includes)? (see same comment for inline_view? section)
436+
scope.eager_load(references || {}).eager_load(exp_includes || {}).preload(includes)
441437
end
442438

443439
# @param includes [Array, Hash]

0 commit comments

Comments
 (0)