searchlogic
searchlogic copied to clipboard
Searchlogic::NamedScopes::OrConditions::UnknownConditionError raised when calling class method with "_or_" in its name on search object
Everything runs great when you change name of affected method to different name not including 'or'
How to get this error:
-
create empty rails app (rails 2.3.5)
-
add this line to config/environment.rb
config.gem "searchlogic", :version => '~> 2.4.19' -
generate model
ruby script/generate model car -
run
rake db:migrate -
edit generated model - add class method including "or" in its name
class Car < ActiveRecord::Base def self.abc_or_def all end end -
run rails console and try
search = Car.search search.abc_or_def
my results:
Loading development environment (Rails 2.3.5)
>> search = Car.search
=> #<Searchlogic::Search:0x49e24ac @conditions={}, @klass=Car(id: integer, created_at: datetime, updated_at: datetime),
@current_scope=nil>
>> search.abc_or_def
Searchlogic::NamedScopes::OrConditions::UnknownConditionError: The condition 'def' is not a valid condition, we could not find any scopes that match this.
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:96:in `interpolate_or_conditions'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:75:in `each'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:75:in `interpolate_or_conditions'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:36:in `or_conditions'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:19:in `or_condition?'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/named_scopes/or_conditions.rb:10:in `condition?'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/search.rb:196:in `scope?'
from c:/ruby/lib/ruby/gems/1.8/gems/searchlogic-2.4.19/lib/searchlogic/search.rb:127:in `method_missing'
from (irb):2
>>