-
Notifications
You must be signed in to change notification settings - Fork 43
Open
Description
The following call to sanitize_sql_from_hash yields invalid conditions:
sanitize_sql_from_hash({'state_id' => 3, 'county_id' => nil})
And ends up throwing:
wrong number of bind variables (1 for 2)
There seems to be a specific check to make sure nil is not appended to the values array, which doesn't seem right, but I don't pretend to fully understand this method so it's likely I'm missing something. Seems like the following diff would take care of it:
diff --git a/ar-extensions/lib/ar-extensions/finders.rb b/ar-extensions/lib/ar-extensions/finders.rb
index 874ba3c..374ac2a 100644
--- a/ar-extensions/lib/ar-extensions/finders.rb
+++ b/ar-extensions/lib/ar-extensions/finders.rb
@@ -63,7 +63,7 @@ class ActiveRecord::Base
result = ActiveRecord::Extensions.process( key, val, self )
if result
conditions << result.sql
- values.push( result.value ) unless result.value.nil?
+ values.push( result.value )
else
# Extract table name from qualified attribute names.
attr = key.to_s
@@ -91,4 +91,4 @@ class ActiveRecord::Base
end
end
-end
\ No newline at end of file
+end
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels