spec for multiple plucked columns

This commit is contained in:
Dylan Knutson
2025-07-29 15:08:26 +00:00
parent b4fd614280
commit 94c2fb9593
2 changed files with 14 additions and 1 deletions

View File

@@ -119,7 +119,7 @@ module HasAuxTable
) )
pluck_method = relation_class.instance_method(:pluck) pluck_method = relation_class.instance_method(:pluck)
relation_class.send(:define_method, :pluck) do |column_names| relation_class.send(:define_method, :pluck) do |*column_names|
T.bind(self, ActiveRecord::Relation) T.bind(self, ActiveRecord::Relation)
if (predicates = Util.try_relation_optimization(self, aux_config)) if (predicates = Util.try_relation_optimization(self, aux_config))
aux_relation = aux_config.aux.klass.where(predicates) aux_relation = aux_config.aux.klass.where(predicates)

View File

@@ -86,6 +86,19 @@ RSpec.describe "loading optimizations" do
it_behaves_like "queries both tables" it_behaves_like "queries both tables"
end end
context "multiple columns" do
before do
@queries =
SpecHelper.capture_queries do
expect(Car.pluck(:fuel_type, :engine_size)).to eq(
[["gasoline", 2.0], ["hybrid", 1.5], ["electric", 1.8]]
)
end
end
it_behaves_like "queries only the aux table"
end
end end
describe "maximum" do describe "maximum" do