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
>>
Everything runs great when you change name of affected method to different name not including 'or'
How to get this error:
add this line to config/environment.rb
generate model
run
edit generated model - add class method including "or" in its name
run rails console and try
my results: