aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/finder_test.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-07-19 08:18:43 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-07-20 00:50:59 +0900
commit0d56480c4b547915f99f3581065e52a48bd98ca1 (patch)
tree327f0a44a421c44340361648877b585c8c977b0d /activerecord/test/cases/finder_test.rb
parent1f7f872ac6c8b57af6e0117bde5f6c38d0bae923 (diff)
downloadrails-0d56480c4b547915f99f3581065e52a48bd98ca1.tar.gz
rails-0d56480c4b547915f99f3581065e52a48bd98ca1.tar.bz2
rails-0d56480c4b547915f99f3581065e52a48bd98ca1.zip
Fix `find_by` with range conditions
`StatementCache` doesn't support range conditions. So we need to through the args to `FinderMethods#find_by` if range value is passed.
Diffstat (limited to 'activerecord/test/cases/finder_test.rb')
-rw-r--r--activerecord/test/cases/finder_test.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb
index af21cd529f..b860bb4e18 100644
--- a/activerecord/test/cases/finder_test.rb
+++ b/activerecord/test/cases/finder_test.rb
@@ -1177,6 +1177,10 @@ class FinderTest < ActiveRecord::TestCase
assert_equal posts(:eager_other), Post.find_by("id = ?", posts(:eager_other).id)
end
+ test "find_by with range conditions returns the first matching record" do
+ assert_equal posts(:eager_other), Post.find_by(id: posts(:eager_other).id...posts(:misc_by_bob).id)
+ end
+
test "find_by returns nil if the record is missing" do
assert_nil Post.find_by("1 = 0")
end