diff --git a/lib/has_aux_table/relation_extensions.rb b/lib/has_aux_table/relation_extensions.rb index df70816..e02c3a1 100644 --- a/lib/has_aux_table/relation_extensions.rb +++ b/lib/has_aux_table/relation_extensions.rb @@ -119,7 +119,7 @@ module HasAuxTable ) 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) if (predicates = Util.try_relation_optimization(self, aux_config)) aux_relation = aux_config.aux.klass.where(predicates) diff --git a/spec/loading_optimizations_spec.rb b/spec/loading_optimizations_spec.rb index 6b40f92..6c6502a 100644 --- a/spec/loading_optimizations_spec.rb +++ b/spec/loading_optimizations_spec.rb @@ -86,6 +86,19 @@ RSpec.describe "loading optimizations" do it_behaves_like "queries both tables" 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 describe "maximum" do