Commit 61673c4816337b32f196278da863e11bb200d8b7
1 parent
642ec519
Exists in
master
and in
12 other branches
Raise warning when search called on relation
Showing
2 changed files
with
15 additions
and
0 deletions
Show diff stats
lib/searchkick/model.rb
... | ... | @@ -41,6 +41,8 @@ module Searchkick |
41 | 41 | |
42 | 42 | class << self |
43 | 43 | def searchkick_search(term = "*", **options, &block) |
44 | + # TODO same for Mongoid | |
45 | + Searchkick.warn("calling search on a relation is deprecated") if respond_to?(:current_scope) && !current_scope.nil? | |
44 | 46 | Searchkick.search(term, model: self, **options, &block) |
45 | 47 | end |
46 | 48 | alias_method Searchkick.search_method_name, :searchkick_search if Searchkick.search_method_name | ... | ... |
test/match_test.rb
... | ... | @@ -301,4 +301,17 @@ class MatchTest < Minitest::Test |
301 | 301 | store_names ["Ice Cream Cake"] |
302 | 302 | assert_search "🍨🍰", ["Ice Cream Cake"], emoji: true |
303 | 303 | end |
304 | + | |
305 | + # TODO find better place | |
306 | + | |
307 | + def test_search_relation | |
308 | + skip unless defined?(ActiveRecord) | |
309 | + | |
310 | + assert_nil Product.current_scope | |
311 | + _, stderr = capture_io { Product.search("*") } | |
312 | + assert_equal "", stderr | |
313 | + assert Product.where(name: nil).current_scope | |
314 | + _, stderr = capture_io { Product.where(name: nil).search("*") } | |
315 | + assert_match "WARNING", stderr | |
316 | + end | |
304 | 317 | end | ... | ... |