Skip to content

Commit 11e2629

Browse files
committed
Raise ArgumentError on empty query_constraints configuration
1 parent 51e9fa9 commit 11e2629

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

activerecord/lib/active_record/persistence.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,8 @@ def update!(id = :all, attributes)
485485
# developer.reload
486486
# # => SELECT "developers".* FROM "developers" WHERE "developers"."company_id" = 1 AND "developers"."id" = 1 LIMIT 1
487487
def query_constraints(*columns_list)
488+
raise ArgumentError, "You must specify at least one column to be used in querying" if columns_list.empty?
489+
488490
@_query_constraints_list = columns_list.map(&:to_s)
489491
end
490492

activerecord/test/cases/persistence_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,4 +1476,13 @@ def assert_uses_query_constraints_on_reload(object, columns)
14761476
assert_match(/WHERE .*#{column}/, sql)
14771477
end
14781478
end
1479+
1480+
def test_query_constraints_raises_an_error_when_no_columns_provided
1481+
assert_raises(ArgumentError) do
1482+
Class.new(ActiveRecord::Base) do
1483+
self.table_name = "topics"
1484+
query_constraints
1485+
end
1486+
end
1487+
end
14791488
end

0 commit comments

Comments
 (0)